%------------------------------------------------------------------------------
% File : DT2H2X---1.9.5
% Problem : ITP166^2 : TPTP v9.2.1. Released v7.5.0.
% Transfm : none
% Format : tptp:raw
% Command : /export/starexec/sandbox/solver/bin/run_DT2H2X /export/starexec/sandbox/benchmark/theBenchmark.p 300
% Computer : n014.cluster.edu
% Model : x86_64 x86_64
% CPU : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory : 8042.1875MB
% OS : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit : 300s
% DateTime : Wed Feb 25 08:56:05 AM UTC 2026
% Result : Theorem 2.90s 1.75s
% Output : Refutation 2.90s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12 % Problem : ITP166^2 : TPTP v9.2.1. Released v7.5.0.
% 0.12/0.13 % Command : /export/starexec/sandbox/solver/bin/run_DT2H2X /export/starexec/sandbox/benchmark/theBenchmark.p 300
% 0.17/0.34 % Computer : n014.cluster.edu
% 0.17/0.34 % Model : x86_64 x86_64
% 0.17/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.17/0.34 % Memory : 8042.1875MB
% 0.17/0.34 % OS : Linux 3.10.0-693.el7.x86_64
% 0.17/0.34 % CPULimit : 300
% 0.17/0.34 % WCLimit : 300
% 0.17/0.34 % DateTime : Tue Feb 24 08:29:27 EST 2026
% 0.17/0.34 % CPUTime :
% 0.17/0.34 Running /export/starexec/sandbox/solver/bin/run_DT2H2X /export/starexec/sandbox/benchmark/theBenchmark.p 300
% 0.28/0.46 ---- Original DTF file ---
% 0.28/0.46 thf(spec,logic,$$dhol).
% 0.28/0.46 %------------------------------------------------------------------------------
% 0.28/0.46 % File : ITP166^2 : TPTP v9.2.1. Released v7.5.0.
% 0.28/0.46 % Domain : Interactive Theorem Proving
% 0.28/0.46 % Problem : Sledgehammer RelationalIncorrectness problem prob_274__5902014_1
% 0.28/0.46 % Version : Especial.
% 0.28/0.46 % English :
% 0.28/0.46
% 0.28/0.46 % Refs : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
% 0.28/0.46 % : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% 0.28/0.46 % Source : [Des21]
% 0.28/0.46 % Names : RelationalIncorrectness/prob_274__5902014_1 [Des21]
% 0.28/0.46
% 0.28/0.46 % Status : Theorem
% 0.28/0.46 % Rating : 0.33 v8.2.0, 0.00 v8.1.0, 0.25 v7.5.0
% 0.28/0.46 % Syntax : Number of formulae : 386 ( 161 unt; 97 typ; 0 def)
% 0.28/0.46 % Number of atoms : 672 ( 312 equ; 0 cnn)
% 0.28/0.46 % Maximal formula atoms : 16 ( 2 avg)
% 0.28/0.46 % Number of connectives : 4792 ( 88 ~; 14 |; 90 &;4367 @)
% 0.28/0.46 % ( 0 <=>; 233 =>; 0 <=; 0 <~>)
% 0.28/0.46 % Maximal formula depth : 28 ( 8 avg)
% 0.28/0.46 % Number of types : 9 ( 8 usr)
% 0.28/0.46 % Number of type conns : 873 ( 873 >; 0 *; 0 +; 0 <<)
% 0.28/0.46 % Number of symbols : 92 ( 89 usr; 8 con; 0-9 aty)
% 0.28/0.46 % Number of variables : 1271 ( 98 ^;1049 !; 51 ?;1271 :)
% 0.28/0.46 % ( 73 !>; 0 ?*; 0 @-; 0 @+)
% 0.28/0.46 % SPC : TH1_THM_EQU_NAR
% 0.28/0.46
% 0.28/0.46 % Comments : This file was generated by Sledgehammer 2021-02-23 16:18:45.506
% 0.28/0.46 %------------------------------------------------------------------------------
% 0.28/0.46 % Could-be-implicit typings (14)
% 0.28/0.46 thf(ty_t_Record_Otuple__isomorphism,type,
% 0.28/0.46 tuple_isomorphism: $tType > $tType > $tType > $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Product__Type_Oprod,type,
% 0.28/0.46 product_prod: $tType > $tType > $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Typerep_Otyperep,type,
% 0.28/0.46 typerep: $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_String_Oliteral,type,
% 0.28/0.46 literal: $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Sum__Type_Osum,type,
% 0.28/0.46 sum_sum: $tType > $tType > $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Option_Ooption,type,
% 0.28/0.46 option: $tType > $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_String_Ochar,type,
% 0.28/0.46 char: $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_List_Olist,type,
% 0.28/0.46 list: $tType > $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_BExp_Obexp,type,
% 0.28/0.46 bexp: $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_AExp_Oaexp,type,
% 0.28/0.46 aexp: $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Set_Oset,type,
% 0.28/0.46 set: $tType > $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Nat_Onat,type,
% 0.28/0.46 nat: $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Int_Oint,type,
% 0.28/0.46 int: $tType ).
% 0.28/0.46
% 0.28/0.46 thf(ty_t_Com_Ocom,type,
% 0.28/0.46 com: $tType ).
% 0.28/0.46
% 0.28/0.46 % Explicit typings (83)
% 0.28/0.46 thf(sy_cl_HOL_Otype,type,
% 0.28/0.46 type:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Nat_Osize,type,
% 0.28/0.46 size:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Ozero,type,
% 0.28/0.46 zero:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Num_Oneg__numeral,type,
% 0.28/0.46 neg_numeral:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Ogroup__add,type,
% 0.28/0.46 group_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Omonoid__add,type,
% 0.28/0.46 monoid_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Osemigroup__add,type,
% 0.28/0.46 semigroup_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Ocomm__monoid__add,type,
% 0.28/0.46 comm_monoid_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Oab__semigroup__add,type,
% 0.28/0.46 ab_semigroup_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Ocancel__semigroup__add,type,
% 0.28/0.46 cancel_semigroup_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Ocancel__comm__monoid__add,type,
% 0.28/0.46 cancel1352612707id_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Olinordered__ab__group__add,type,
% 0.28/0.46 linord219039673up_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Oordered__ab__semigroup__add,type,
% 0.28/0.46 ordere779506340up_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
% 0.28/0.46 canoni770627133id_add:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Divides_Ounique__euclidean__semiring__numeral,type,
% 0.28/0.46 unique1598680935umeral:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,type,
% 0.28/0.46 semiri456707255roduct:
% 0.28/0.46 !>[A: $tType] : $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BExp_Obval,type,
% 0.28/0.46 bval: bexp > ( ( list @ char ) > int ) > $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BNF__Greatest__Fixpoint_OShift,type,
% 0.28/0.46 bNF_Greatest_Shift:
% 0.28/0.46 !>[A: $tType] : ( ( set @ ( list @ A ) ) > A > ( set @ ( list @ A ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BNF__Greatest__Fixpoint_OSucc,type,
% 0.28/0.46 bNF_Greatest_Succ:
% 0.28/0.46 !>[A: $tType] : ( ( set @ ( list @ A ) ) > ( list @ A ) > ( set @ A ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BNF__Greatest__Fixpoint_Oimage2,type,
% 0.28/0.46 bNF_Greatest_image2:
% 0.28/0.46 !>[C: $tType,A: $tType,B: $tType] : ( ( set @ C ) > ( C > A ) > ( C > B ) > ( set @ ( product_prod @ A @ B ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BNF__Greatest__Fixpoint_Oimage2p,type,
% 0.28/0.46 bNF_Greatest_image2p:
% 0.28/0.46 !>[C: $tType,A: $tType,D: $tType,B: $tType] : ( ( C > A ) > ( D > B ) > ( C > D > $o ) > A > B > $o ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BNF__Greatest__Fixpoint_OrelImage,type,
% 0.28/0.46 bNF_Gr1317331620lImage:
% 0.28/0.46 !>[B: $tType,A: $tType] : ( ( set @ ( product_prod @ B @ B ) ) > ( B > A ) > ( set @ ( product_prod @ A @ A ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BNF__Greatest__Fixpoint_OrelInvImage,type,
% 0.28/0.46 bNF_Gr2107612801vImage:
% 0.28/0.46 !>[A: $tType,B: $tType] : ( ( set @ A ) > ( set @ ( product_prod @ B @ B ) ) > ( A > B ) > ( set @ ( product_prod @ A @ A ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_BNF__Greatest__Fixpoint_Oshift,type,
% 0.28/0.46 bNF_Greatest_shift:
% 0.28/0.46 !>[A: $tType,B: $tType] : ( ( ( list @ A ) > B ) > A > ( list @ A ) > B ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Basic__BNF__LFPs_Osum_Osize__sum,type,
% 0.28/0.46 basic_BNF_size_sum:
% 0.28/0.46 !>[A: $tType,B: $tType] : ( ( A > nat ) > ( B > nat ) > ( sum_sum @ A @ B ) > nat ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Big__Step_Obig__step,type,
% 0.28/0.46 big_big_step: ( product_prod @ com @ ( ( list @ char ) > int ) ) > ( ( list @ char ) > int ) > $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Com_Ocom_OAssign,type,
% 0.28/0.46 assign: ( list @ char ) > aexp > com ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Com_Ocom_OIf,type,
% 0.28/0.46 if: bexp > com > com > com ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Com_Ocom_OSKIP,type,
% 0.28/0.46 skip: com ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Com_Ocom_OSeq,type,
% 0.28/0.46 seq: com > com > com ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Com_Ocom_OWhile,type,
% 0.28/0.46 while: bexp > com > com ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Com_Ocom_Osize__com,type,
% 0.28/0.46 size_com: com > nat ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Divides_Ounique__euclidean__semiring__numeral__class_Odivides__aux,type,
% 0.28/0.46 unique455577585es_aux:
% 0.28/0.46 !>[A: $tType] : ( ( product_prod @ A @ A ) > $o ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Groups_Oplus__class_Oplus,type,
% 0.28/0.46 plus_plus:
% 0.28/0.46 !>[A: $tType] : ( A > A > A ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Groups_Ozero__class_Ozero,type,
% 0.28/0.46 zero_zero:
% 0.28/0.46 !>[A: $tType] : A ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Oappend,type,
% 0.28/0.46 append:
% 0.28/0.46 !>[A: $tType] : ( ( list @ A ) > ( list @ A ) > ( list @ A ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Ogen__length,type,
% 0.28/0.46 gen_length:
% 0.28/0.46 !>[A: $tType] : ( nat > ( list @ A ) > nat ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Olex,type,
% 0.28/0.46 lex:
% 0.28/0.46 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Olexn,type,
% 0.28/0.46 lexn:
% 0.28/0.46 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > nat > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Olexord,type,
% 0.28/0.46 lexord:
% 0.28/0.46 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Olist_OCons,type,
% 0.28/0.46 cons:
% 0.28/0.46 !>[A: $tType] : ( A > ( list @ A ) > ( list @ A ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Olist_Osize__list,type,
% 0.28/0.46 size_list:
% 0.28/0.46 !>[A: $tType] : ( ( A > nat ) > ( list @ A ) > nat ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Olistrel1,type,
% 0.28/0.46 listrel1:
% 0.28/0.46 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Oset__Cons,type,
% 0.28/0.46 set_Cons:
% 0.28/0.46 !>[A: $tType] : ( ( set @ A ) > ( set @ ( list @ A ) ) > ( set @ ( list @ A ) ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_List_Osplice,type,
% 0.28/0.46 splice:
% 0.28/0.46 !>[A: $tType] : ( ( list @ A ) > ( list @ A ) > ( list @ A ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Nat_OSuc,type,
% 0.28/0.46 suc: nat > nat ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Nat_Osize__class_Osize,type,
% 0.28/0.46 size_size:
% 0.28/0.46 !>[A: $tType] : ( A > nat ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Option_Ooption_ONone,type,
% 0.28/0.46 none:
% 0.28/0.46 !>[A: $tType] : ( option @ A ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Option_Ooption_OSome,type,
% 0.28/0.46 some:
% 0.28/0.46 !>[A: $tType] : ( A > ( option @ A ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Option_Ooption_Ocase__option,type,
% 0.28/0.46 case_option:
% 0.28/0.46 !>[B: $tType,A: $tType] : ( B > ( A > B ) > ( option @ A ) > B ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Option_Ooption_Osize__option,type,
% 0.28/0.46 size_option:
% 0.28/0.46 !>[A: $tType] : ( ( A > nat ) > ( option @ A ) > nat ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Product__Type_OPair,type,
% 0.28/0.46 product_Pair:
% 0.28/0.46 !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Product__Type_Ointernal__case__prod,type,
% 0.28/0.46 produc2004651681e_prod:
% 0.28/0.46 !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
% 0.28/0.46 product_rec_prod:
% 0.28/0.46 !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Record_Otuple__isomorphism_OTuple__Isomorphism,type,
% 0.28/0.46 tuple_742722141rphism:
% 0.28/0.46 !>[A: $tType,B: $tType,C: $tType] : ( ( A > ( product_prod @ B @ C ) ) > ( ( product_prod @ B @ C ) > A ) > ( tuple_isomorphism @ A @ B @ C ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Record_Otuple__isomorphism_Osize__tuple__isomorphism,type,
% 0.28/0.46 tuple_1907371454rphism:
% 0.28/0.46 !>[A: $tType,B: $tType,C: $tType] : ( ( A > nat ) > ( B > nat ) > ( C > nat ) > ( tuple_isomorphism @ A @ B @ C ) > nat ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oflip,type,
% 0.28/0.46 relati1716060877e_flip: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oget__back,type,
% 0.28/0.46 relati1010904253t_back:
% 0.28/0.46 !>[A: $tType] : ( ( ( ( list @ char ) > int ) > A > $o ) > bexp > com > nat > ( ( list @ char ) > int ) > A > $o ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__hoare,type,
% 0.28/0.46 relati1493963588_hoare: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__valid,type,
% 0.28/0.46 relati167478067_valid: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Set_OCollect,type,
% 0.28/0.46 collect:
% 0.28/0.46 !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Sum__Type_OInl,type,
% 0.28/0.46 sum_Inl:
% 0.28/0.46 !>[A: $tType,B: $tType] : ( A > ( sum_sum @ A @ B ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Sum__Type_OInr,type,
% 0.28/0.46 sum_Inr:
% 0.28/0.46 !>[B: $tType,A: $tType] : ( B > ( sum_sum @ A @ B ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Typerep_Otyperep_OTyperep,type,
% 0.28/0.46 typerep2: literal > ( list @ typerep ) > typerep ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_Typerep_Otyperep_Osize__typerep,type,
% 0.28/0.46 size_typerep: typerep > nat ).
% 0.28/0.46
% 0.28/0.46 thf(sy_c_member,type,
% 0.28/0.46 member:
% 0.28/0.46 !>[A: $tType] : ( A > ( set @ A ) > $o ) ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_P,type,
% 0.28/0.46 p: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_Q,type,
% 0.28/0.46 q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_b,type,
% 0.28/0.46 b: bexp ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_c,type,
% 0.28/0.46 c: com ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_c_H,type,
% 0.28/0.46 c2: com ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_k,type,
% 0.28/0.46 k: nat ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_ka____,type,
% 0.28/0.46 ka: nat ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_s_H____,type,
% 0.28/0.46 s: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_s_Ha____,type,
% 0.28/0.46 s_a: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_s____,type,
% 0.28/0.46 s2: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_sa____,type,
% 0.28/0.46 sa: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_t_H____,type,
% 0.28/0.46 t: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_t_Ha____,type,
% 0.28/0.46 t_a: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_t____,type,
% 0.28/0.46 t2: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_ta____,type,
% 0.28/0.46 ta: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_u____,type,
% 0.28/0.46 u: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 thf(sy_v_ua____,type,
% 0.28/0.46 ua: ( list @ char ) > int ).
% 0.28/0.46
% 0.28/0.46 % Relevant facts (253)
% 0.28/0.46 thf(fact_0_Suc_Oprems_I6_J,axiom,
% 0.28/0.46 bval @ b @ sa ).
% 0.28/0.46
% 0.28/0.46 % Suc.prems(6)
% 0.28/0.46 thf(fact_1__092_060open_062bval_Ab_As_____092_060close_062,axiom,
% 0.28/0.46 bval @ b @ s2 ).
% 0.28/0.46
% 0.28/0.46 % \<open>bval b s__\<close>
% 0.28/0.46 thf(fact_2_Suc_Oprems_I3_J,axiom,
% 0.28/0.46 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ sa ) @ ta ).
% 0.28/0.46
% 0.28/0.46 % Suc.prems(3)
% 0.28/0.46 thf(fact_3_Suc_Oprems_I4_J,axiom,
% 0.28/0.46 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ s_a ) @ t_a ).
% 0.28/0.46
% 0.28/0.46 % Suc.prems(4)
% 0.28/0.46 thf(fact_4_Suc_Oprems_I7_J,axiom,
% 0.28/0.46 relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ( suc @ ka ) @ sa @ s_a ).
% 0.28/0.46
% 0.28/0.46 % Suc.prems(7)
% 0.28/0.46 thf(fact_5__092_060open_062_Ic_H_M_As_H_____J_A_092_060Rightarrow_062_At_H_____092_060close_062,axiom,
% 0.28/0.46 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ s ) @ t ).
% 0.28/0.46
% 0.28/0.46 % \<open>(c', s'__) \<Rightarrow> t'__\<close>
% 0.28/0.46 thf(fact_6__092_060open_062_Ic_M_As_____J_A_092_060Rightarrow_062_At_____092_060close_062,axiom,
% 0.28/0.46 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ s2 ) @ t2 ).
% 0.28/0.46
% 0.28/0.46 % \<open>(c, s__) \<Rightarrow> t__\<close>
% 0.28/0.46 thf(fact_7_Suc_Oprems_I5_J,axiom,
% 0.28/0.46 q @ ua @ t_a ).
% 0.28/0.46
% 0.28/0.46 % Suc.prems(5)
% 0.28/0.46 thf(fact_8__092_060open_062get__back_AP_Ab_Ac_Ak_As_____As_H_____092_060close_062,axiom,
% 0.28/0.46 relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ k @ s2 @ s ).
% 0.28/0.46
% 0.28/0.46 % \<open>get_back P b c k s__ s'__\<close>
% 0.28/0.46 thf(fact_9_Suc_Oprems_I2_J,axiom,
% 0.28/0.46 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ b @ c ) @ ta ) @ ua ).
% 0.28/0.46
% 0.28/0.46 % Suc.prems(2)
% 0.28/0.46 thf(fact_10__092_060open_062_IWHILE_Ab_ADO_Ac_M_At_____J_A_092_060Rightarrow_062_Au_____092_060close_062,axiom,
% 0.28/0.46 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ b @ c ) @ t2 ) @ u ).
% 0.28/0.46
% 0.28/0.46 % \<open>(WHILE b DO c, t__) \<Rightarrow> u__\<close>
% 0.28/0.46 thf(fact_11_Suc_Oprems_I1_J,axiom,
% 0.28/0.46 relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ( suc @ ka ) ) @ ( while @ b @ c ) @ c2 @ q ).
% 0.28/0.46
% 0.28/0.46 % Suc.prems(1)
% 0.28/0.46 thf(fact_12_nat_Oinject,axiom,
% 0.28/0.46 ! [X2: nat,Y2: nat] :
% 0.28/0.46 ( ( ( suc @ X2 )
% 0.28/0.46 = ( suc @ Y2 ) )
% 0.28/0.46 = ( X2 = Y2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % nat.inject
% 0.28/0.46 thf(fact_13_old_Onat_Oinject,axiom,
% 0.28/0.46 ! [Nat: nat,Nat2: nat] :
% 0.28/0.46 ( ( ( suc @ Nat )
% 0.28/0.46 = ( suc @ Nat2 ) )
% 0.28/0.46 = ( Nat = Nat2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.nat.inject
% 0.28/0.46 thf(fact_14_prod_Oinject,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y2: B] :
% 0.28/0.46 ( ( ( product_Pair @ A @ B @ X1 @ X2 )
% 0.28/0.46 = ( product_Pair @ A @ B @ Y1 @ Y2 ) )
% 0.28/0.46 = ( ( X1 = Y1 )
% 0.28/0.46 & ( X2 = Y2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod.inject
% 0.28/0.46 thf(fact_15_old_Oprod_Oinject,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 0.28/0.46 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 0.28/0.46 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 0.28/0.46 = ( ( A2 = A3 )
% 0.28/0.46 & ( B2 = B3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.prod.inject
% 0.28/0.46 thf(fact_16_Suc_OIH,axiom,
% 0.28/0.46 ! [T2: ( list @ char ) > int,U: ( list @ char ) > int,S: ( list @ char ) > int,S2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.28/0.46 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ka ) @ ( while @ b @ c ) @ c2 @ q )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ b @ c ) @ T2 ) @ U )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ S ) @ T2 )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ S2 ) @ T3 )
% 0.28/0.46 => ( ( q @ U @ T3 )
% 0.28/0.46 => ( ( bval @ b @ S )
% 0.28/0.46 => ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ka @ S @ S2 )
% 0.28/0.46 => ? [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ka @ S3 @ S4 )
% 0.28/0.46 & ( bval @ b @ S3 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ S3 ) @ T2 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ S4 ) @ T3 ) ) ) ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Suc.IH
% 0.28/0.46 thf(fact_17_sim__sym,axiom,
% 0.28/0.46 ! [C2: com,C3: com] :
% 0.28/0.46 ( ( ! [S5: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T4 ) ) )
% 0.28/0.46 = ( ! [S5: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T4 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sim_sym
% 0.28/0.46 thf(fact_18_sim__refl,axiom,
% 0.28/0.46 ! [C2: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 ) ) ).
% 0.28/0.46
% 0.28/0.46 % sim_refl
% 0.28/0.46 thf(fact_19__092_060open_062Q_Au_____At_H_____092_060close_062,axiom,
% 0.28/0.46 q @ u @ t ).
% 0.28/0.46
% 0.28/0.46 % \<open>Q u__ t'__\<close>
% 0.28/0.46 thf(fact_20_disj__ir__valid,axiom,
% 0.28/0.46 ! [P_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P_1 @ C2 @ C3 @ Q_1 )
% 0.28/0.46 => ( ( relati167478067_valid @ P_2 @ C2 @ C3 @ Q_2 )
% 0.28/0.46 => ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P_1 @ S5 @ S7 )
% 0.28/0.46 | ( P_2 @ S5 @ S7 ) )
% 0.28/0.46 @ C2
% 0.28/0.46 @ C3
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q_1 @ T4 @ T6 )
% 0.28/0.46 | ( Q_2 @ T4 @ T6 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % disj_ir_valid
% 0.28/0.46 thf(fact_21__092_060open_062ir__valid_A_Iget__back_AP_Ab_Ac_Ak_J_A_IWHILE_Ab_ADO_Ac_J_Ac_H_AQ_092_060close_062,axiom,
% 0.28/0.46 relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ k ) @ ( while @ b @ c ) @ c2 @ q ).
% 0.28/0.46
% 0.28/0.46 % \<open>ir_valid (get_back P b c k) (WHILE b DO c) c' Q\<close>
% 0.28/0.46 thf(fact_22_conseq__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S3 @ S4 )
% 0.28/0.46 => ( P2 @ S3 @ S4 ) )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q2 @ S3 @ S4 )
% 0.28/0.46 => ( Q @ S3 @ S4 ) )
% 0.28/0.46 => ( relati167478067_valid @ P2 @ C2 @ C3 @ Q2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % conseq_ir_valid
% 0.28/0.46 thf(fact_23_ir__valid__get__back,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,K: nat,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_valid_get_back
% 0.28/0.46 thf(fact_24_sim__while__cong__aux,axiom,
% 0.28/0.46 ! [B2: bexp,C2: com,S: ( list @ char ) > int,T2: ( list @ char ) > int,C3: com] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S ) @ T2 )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T7 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 ) )
% 0.28/0.46 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S ) @ T2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sim_while_cong_aux
% 0.28/0.46 thf(fact_25_sim__while__cong,axiom,
% 0.28/0.46 ! [C2: com,C3: com,B2: bexp] :
% 0.28/0.46 ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T7 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 ) )
% 0.28/0.46 => ! [S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S6 ) @ T5 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S6 ) @ T5 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sim_while_cong
% 0.28/0.46 thf(fact_26_ir__valid__def,axiom,
% 0.28/0.46 ( relati167478067_valid
% 0.28/0.46 = ( ^ [P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ! [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q3 @ T4 @ T6 )
% 0.28/0.46 => ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P3 @ S5 @ S7 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C4 @ S5 ) @ T4 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C5 @ S7 ) @ T6 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_valid_def
% 0.28/0.46 thf(fact_27_WhileFalse,axiom,
% 0.28/0.46 ! [B2: bexp,S: ( list @ char ) > int,C2: com] :
% 0.28/0.46 ( ~ ( bval @ B2 @ S )
% 0.28/0.46 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S ) @ S ) ) ).
% 0.28/0.46
% 0.28/0.46 % WhileFalse
% 0.28/0.46 thf(fact_28_WhileTrue,axiom,
% 0.28/0.46 ! [B2: bexp,S_1: ( list @ char ) > int,C2: com,S_2: ( list @ char ) > int,S_3: ( list @ char ) > int] :
% 0.28/0.46 ( ( bval @ B2 @ S_1 )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S_1 ) @ S_2 )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_2 ) @ S_3 )
% 0.28/0.46 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_1 ) @ S_3 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % WhileTrue
% 0.28/0.46 thf(fact_29_WhileE,axiom,
% 0.28/0.46 ! [B2: bexp,C2: com,S: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S ) @ T2 )
% 0.28/0.46 => ( ( ( T2 = S )
% 0.28/0.46 => ( bval @ B2 @ S ) )
% 0.28/0.46 => ~ ( ( bval @ B2 @ S )
% 0.28/0.46 => ! [S_22: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ S_22 )
% 0.28/0.46 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_22 ) @ T2 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % WhileE
% 0.28/0.46 thf(fact_30_old_Oprod_Oinducts,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
% 0.28/0.46 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 0.28/0.46 => ( P @ Prod ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.prod.inducts
% 0.28/0.46 thf(fact_31_old_Oprod_Oexhaust,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
% 0.28/0.46 ~ ! [A4: A,B4: B] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( product_Pair @ A @ B @ A4 @ B4 ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.prod.exhaust
% 0.28/0.46 thf(fact_32_prod__induct7,axiom,
% 0.28/0.46 ! [G: $tType,F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
% 0.28/0.46 ( ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F,G2: G] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E2 @ ( product_Pair @ F @ G @ F2 @ G2 ) ) ) ) ) ) )
% 0.28/0.46 => ( P @ X ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_induct7
% 0.28/0.46 thf(fact_33_prod__induct6,axiom,
% 0.28/0.46 ! [F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
% 0.28/0.46 ( ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E2 @ F2 ) ) ) ) ) )
% 0.28/0.46 => ( P @ X ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_induct6
% 0.28/0.46 thf(fact_34_prod__induct5,axiom,
% 0.28/0.46 ! [E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
% 0.28/0.46 ( ! [A4: A,B4: B,C6: C,D2: D,E2: E] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C6 @ ( product_Pair @ D @ E @ D2 @ E2 ) ) ) ) )
% 0.28/0.46 => ( P @ X ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_induct5
% 0.28/0.46 thf(fact_35_prod__induct4,axiom,
% 0.28/0.46 ! [D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
% 0.28/0.46 ( ! [A4: A,B4: B,C6: C,D2: D] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C6 @ D2 ) ) ) )
% 0.28/0.46 => ( P @ X ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_induct4
% 0.28/0.46 thf(fact_36_prod__induct3,axiom,
% 0.28/0.46 ! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
% 0.28/0.46 ( ! [A4: A,B4: B,C6: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C6 ) ) )
% 0.28/0.46 => ( P @ X ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_induct3
% 0.28/0.46 thf(fact_37_prod__cases7,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,G: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
% 0.28/0.46 ~ ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F,G2: G] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E2 @ ( product_Pair @ F @ G @ F2 @ G2 ) ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_cases7
% 0.28/0.46 thf(fact_38_prod__cases6,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
% 0.28/0.46 ~ ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E2 @ F2 ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_cases6
% 0.28/0.46 thf(fact_39_prod__cases5,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
% 0.28/0.46 ~ ! [A4: A,B4: B,C6: C,D2: D,E2: E] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C6 @ ( product_Pair @ D @ E @ D2 @ E2 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_cases5
% 0.28/0.46 thf(fact_40_prod__cases4,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType,D: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
% 0.28/0.46 ~ ! [A4: A,B4: B,C6: C,D2: D] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C6 @ D2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_cases4
% 0.28/0.46 thf(fact_41_prod__cases3,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
% 0.28/0.46 ~ ! [A4: A,B4: B,C6: C] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C6 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_cases3
% 0.28/0.46 thf(fact_42_Pair__inject,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 0.28/0.46 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 0.28/0.46 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 0.28/0.46 => ~ ( ( A2 = A3 )
% 0.28/0.46 => ( B2 != B3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Pair_inject
% 0.28/0.46 thf(fact_43_prod__cases,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P4: product_prod @ A @ B] :
% 0.28/0.46 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 0.28/0.46 => ( P @ P4 ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod_cases
% 0.28/0.46 thf(fact_44_mem__Collect__eq,axiom,
% 0.28/0.46 ! [A: $tType,A2: A,P: A > $o] :
% 0.28/0.46 ( ( member @ A @ A2 @ ( collect @ A @ P ) )
% 0.28/0.46 = ( P @ A2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % mem_Collect_eq
% 0.28/0.46 thf(fact_45_Collect__mem__eq,axiom,
% 0.28/0.46 ! [A: $tType,A5: set @ A] :
% 0.28/0.46 ( ( collect @ A
% 0.28/0.46 @ ^ [X3: A] : ( member @ A @ X3 @ A5 ) )
% 0.28/0.46 = A5 ) ).
% 0.28/0.46
% 0.28/0.46 % Collect_mem_eq
% 0.28/0.46 thf(fact_46_Collect__cong,axiom,
% 0.28/0.46 ! [A: $tType,P: A > $o,Q: A > $o] :
% 0.28/0.46 ( ! [X4: A] :
% 0.28/0.46 ( ( P @ X4 )
% 0.28/0.46 = ( Q @ X4 ) )
% 0.28/0.46 => ( ( collect @ A @ P )
% 0.28/0.46 = ( collect @ A @ Q ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Collect_cong
% 0.28/0.46 thf(fact_47_ext,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,F3: A > B,G3: A > B] :
% 0.28/0.46 ( ! [X4: A] :
% 0.28/0.46 ( ( F3 @ X4 )
% 0.28/0.46 = ( G3 @ X4 ) )
% 0.28/0.46 => ( F3 = G3 ) ) ).
% 0.28/0.46
% 0.28/0.46 % ext
% 0.28/0.46 thf(fact_48_surj__pair,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,P4: product_prod @ A @ B] :
% 0.28/0.46 ? [X4: A,Y3: B] :
% 0.28/0.46 ( P4
% 0.28/0.46 = ( product_Pair @ A @ B @ X4 @ Y3 ) ) ).
% 0.28/0.46
% 0.28/0.46 % surj_pair
% 0.28/0.46 thf(fact_49_n__not__Suc__n,axiom,
% 0.28/0.46 ! [N: nat] :
% 0.28/0.46 ( N
% 0.28/0.46 != ( suc @ N ) ) ).
% 0.28/0.46
% 0.28/0.46 % n_not_Suc_n
% 0.28/0.46 thf(fact_50_Suc__inject,axiom,
% 0.28/0.46 ! [X: nat,Y: nat] :
% 0.28/0.46 ( ( ( suc @ X )
% 0.28/0.46 = ( suc @ Y ) )
% 0.28/0.46 => ( X = Y ) ) ).
% 0.28/0.46
% 0.28/0.46 % Suc_inject
% 0.28/0.46 thf(fact_51_big__step__determ,axiom,
% 0.28/0.46 ! [C2: com,S: ( list @ char ) > int,T2: ( list @ char ) > int,U: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T2 )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ U )
% 0.28/0.46 => ( U = T2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % big_step_determ
% 0.28/0.46 thf(fact_52_sim__trans,axiom,
% 0.28/0.46 ! [C2: com,C3: com,C7: com] :
% 0.28/0.46 ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T7 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 ) )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C7 @ S3 ) @ T7 ) )
% 0.28/0.46 => ! [S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C7 @ S6 ) @ T5 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sim_trans
% 0.28/0.46 thf(fact_53_old_Oprod_Orec,axiom,
% 0.28/0.46 ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A2: A,B2: B] :
% 0.28/0.46 ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 0.28/0.46 = ( F1 @ A2 @ B2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.prod.rec
% 0.28/0.46 thf(fact_54_com_Oinject_I4_J,axiom,
% 0.28/0.46 ! [X51: bexp,X52: com,Y51: bexp,Y52: com] :
% 0.28/0.46 ( ( ( while @ X51 @ X52 )
% 0.28/0.46 = ( while @ Y51 @ Y52 ) )
% 0.28/0.46 = ( ( X51 = Y51 )
% 0.28/0.46 & ( X52 = Y52 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.inject(4)
% 0.28/0.46 thf(fact_55_While__False__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 0.28/0.46 ( ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ~ ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ skip
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % While_False_ir_valid
% 0.28/0.46 thf(fact_56_While__True__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % While_True_ir_valid
% 0.28/0.46 thf(fact_57_get__back_Osimps_I2_J,axiom,
% 0.28/0.46 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com,N: nat] :
% 0.28/0.46 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( suc @ N ) )
% 0.28/0.46 = ( ^ [T4: ( list @ char ) > int,T6: A] :
% 0.28/0.46 ? [S5: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 )
% 0.28/0.46 & ( bval @ B2 @ S5 )
% 0.28/0.46 & ( relati1010904253t_back @ A @ P @ B2 @ C2 @ N @ S5 @ T6 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % get_back.simps(2)
% 0.28/0.46 thf(fact_58_Skip__ir__valid,axiom,
% 0.28/0.46 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 0.28/0.46 ( ! [T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q @ T7 @ T8 )
% 0.28/0.46 => ? [S8: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ T7 @ S8 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S8 ) @ T8 ) ) )
% 0.28/0.46 => ( relati167478067_valid @ P @ skip @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % Skip_ir_valid
% 0.28/0.46 thf(fact_59_While__backwards__frontier__ir__valid_H,axiom,
% 0.28/0.46 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,K: nat,B2: bexp,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.28/0.46 ( ! [N2: nat,T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ ( plus_plus @ nat @ K @ ( suc @ N2 ) ) @ T7 @ T8 )
% 0.28/0.46 => ? [S6: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ ( plus_plus @ nat @ K @ N2 ) @ S6 @ T8 )
% 0.28/0.46 & ( bval @ B2 @ S6 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T7 ) ) )
% 0.28/0.46 => ( ! [T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q @ T7 @ T8 )
% 0.28/0.46 => ? [S6: ( list @ char ) > int,S8: ( list @ char ) > int] :
% 0.28/0.46 ( ? [N3: nat] : ( P @ ( plus_plus @ nat @ K @ N3 ) @ S6 @ S8 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S6 ) @ T7 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S8 ) @ T8 ) ) )
% 0.28/0.46 => ( ( Q @ T2 @ T3 )
% 0.28/0.46 => ? [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ K @ S3 @ S4 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S3 ) @ T2 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S4 ) @ T3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % While_backwards_frontier_ir_valid'
% 0.28/0.46 thf(fact_60_sym__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ ( relati1716060877e_flip @ P ) @ C3 @ C2 @ ( relati1716060877e_flip @ Q ) )
% 0.28/0.46 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % sym_ir_valid
% 0.28/0.46 thf(fact_61_pred__equals__eq2,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S9: set @ ( product_prod @ A @ B )] :
% 0.28/0.46 ( ( ( ^ [X3: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y4 ) @ R ) )
% 0.28/0.46 = ( ^ [X3: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y4 ) @ S9 ) ) )
% 0.28/0.46 = ( R = S9 ) ) ).
% 0.28/0.46
% 0.28/0.46 % pred_equals_eq2
% 0.28/0.46 thf(fact_62_internal__case__prod__conv,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,C: $tType,C2: B > C > A,A2: B,B2: C] :
% 0.28/0.46 ( ( produc2004651681e_prod @ B @ C @ A @ C2 @ ( product_Pair @ B @ C @ A2 @ B2 ) )
% 0.28/0.46 = ( C2 @ A2 @ B2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % internal_case_prod_conv
% 0.28/0.46 thf(fact_63_com_Oinject_I2_J,axiom,
% 0.28/0.46 ! [X31: com,X32: com,Y31: com,Y32: com] :
% 0.28/0.46 ( ( ( seq @ X31 @ X32 )
% 0.28/0.46 = ( seq @ Y31 @ Y32 ) )
% 0.28/0.46 = ( ( X31 = Y31 )
% 0.28/0.46 & ( X32 = Y32 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.inject(2)
% 0.28/0.46 thf(fact_64_add__Suc__right,axiom,
% 0.28/0.46 ! [M: nat,N: nat] :
% 0.28/0.46 ( ( plus_plus @ nat @ M @ ( suc @ N ) )
% 0.28/0.46 = ( suc @ ( plus_plus @ nat @ M @ N ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_Suc_right
% 0.28/0.46 thf(fact_65_Seq__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,D4: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( ( relati167478067_valid @ Q @ D3 @ D4 @ R )
% 0.28/0.46 => ( relati167478067_valid @ P @ ( seq @ C2 @ D3 ) @ ( seq @ C3 @ D4 ) @ R ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Seq_ir_valid
% 0.28/0.46 thf(fact_66_meh__simp,axiom,
% 0.28/0.46 ! [S2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S2 ) @ T3 )
% 0.28/0.46 = ( S2 = T3 ) ) ).
% 0.28/0.46
% 0.28/0.46 % meh_simp
% 0.28/0.46 thf(fact_67_Seq2__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,C3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ C2 @ skip @ Q )
% 0.28/0.46 => ( ( relati167478067_valid @ Q @ D3 @ C3 @ R )
% 0.28/0.46 => ( relati167478067_valid @ P @ ( seq @ C2 @ D3 ) @ C3 @ R ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Seq2_ir_valid
% 0.28/0.46 thf(fact_68_Seq1__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( ( relati167478067_valid @ Q @ D3 @ skip @ R )
% 0.28/0.46 => ( relati167478067_valid @ P @ ( seq @ C2 @ D3 ) @ C3 @ R ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Seq1_ir_valid
% 0.28/0.46 thf(fact_69_com_Odistinct_I3_J,axiom,
% 0.28/0.46 ! [X31: com,X32: com] :
% 0.28/0.46 ( skip
% 0.28/0.46 != ( seq @ X31 @ X32 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(3)
% 0.28/0.46 thf(fact_70_com_Odistinct_I17_J,axiom,
% 0.28/0.46 ! [X31: com,X32: com,X51: bexp,X52: com] :
% 0.28/0.46 ( ( seq @ X31 @ X32 )
% 0.28/0.46 != ( while @ X51 @ X52 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(17)
% 0.28/0.46 thf(fact_71_com_Odistinct_I7_J,axiom,
% 0.28/0.46 ! [X51: bexp,X52: com] :
% 0.28/0.46 ( skip
% 0.28/0.46 != ( while @ X51 @ X52 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(7)
% 0.28/0.46 thf(fact_72_add__Suc__shift,axiom,
% 0.28/0.46 ! [M: nat,N: nat] :
% 0.28/0.46 ( ( plus_plus @ nat @ ( suc @ M ) @ N )
% 0.28/0.46 = ( plus_plus @ nat @ M @ ( suc @ N ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_Suc_shift
% 0.28/0.46 thf(fact_73_nat__arith_Osuc1,axiom,
% 0.28/0.46 ! [A5: nat,K: nat,A2: nat] :
% 0.28/0.46 ( ( A5
% 0.28/0.46 = ( plus_plus @ nat @ K @ A2 ) )
% 0.28/0.46 => ( ( suc @ A5 )
% 0.28/0.46 = ( plus_plus @ nat @ K @ ( suc @ A2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % nat_arith.suc1
% 0.28/0.46 thf(fact_74_add__Suc,axiom,
% 0.28/0.46 ! [M: nat,N: nat] :
% 0.28/0.46 ( ( plus_plus @ nat @ ( suc @ M ) @ N )
% 0.28/0.46 = ( suc @ ( plus_plus @ nat @ M @ N ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_Suc
% 0.28/0.46 thf(fact_75_ir__valid__Seq1_H,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 0.28/0.46 => ( relati167478067_valid
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S5 ) @ T4 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 0.28/0.46 & ? [U2: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T4 ) @ U2 )
% 0.28/0.46 & ( Q @ U2 @ T6 ) ) )
% 0.28/0.46 @ C22
% 0.28/0.46 @ skip
% 0.28/0.46 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_valid_Seq1'
% 0.28/0.46 thf(fact_76_flip__def,axiom,
% 0.28/0.46 ( relati1716060877e_flip
% 0.28/0.46 = ( ^ [P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S5: ( list @ char ) > int,S7: ( list @ char ) > int] : ( P3 @ S7 @ S5 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % flip_def
% 0.28/0.46 thf(fact_77_ir__valid__Seq1,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ P @ C1 @ C3
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S5 ) @ T4 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 0.28/0.46 & ? [U2: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T4 ) @ U2 )
% 0.28/0.46 & ( Q @ U2 @ T6 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_valid_Seq1
% 0.28/0.46 thf(fact_78_SeqE,axiom,
% 0.28/0.46 ! [C1: com,C22: com,S1: ( list @ char ) > int,S32: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ C22 ) @ S1 ) @ S32 )
% 0.28/0.46 => ~ ! [S_22: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S1 ) @ S_22 )
% 0.28/0.46 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S_22 ) @ S32 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % SeqE
% 0.28/0.46 thf(fact_79_Seq__assoc,axiom,
% 0.28/0.46 ! [C1: com,C22: com,C32: com,S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ ( seq @ C1 @ C22 ) @ C32 ) @ S ) @ S2 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ ( seq @ C22 @ C32 ) ) @ S ) @ S2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % Seq_assoc
% 0.28/0.46 thf(fact_80_Seq,axiom,
% 0.28/0.46 ! [C_1: com,S_1: ( list @ char ) > int,S_2: ( list @ char ) > int,C_2: com,S_3: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S_1 ) @ S_2 )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S_2 ) @ S_3 )
% 0.28/0.46 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C_1 @ C_2 ) @ S_1 ) @ S_3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Seq
% 0.28/0.46 thf(fact_81_SkipE,axiom,
% 0.28/0.46 ! [S: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S ) @ T2 )
% 0.28/0.46 => ( T2 = S ) ) ).
% 0.28/0.46
% 0.28/0.46 % SkipE
% 0.28/0.46 thf(fact_82_Skip,axiom,
% 0.28/0.46 ! [S: ( list @ char ) > int] : ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S ) @ S ) ).
% 0.28/0.46
% 0.28/0.46 % Skip
% 0.28/0.46 thf(fact_83_ir__valid__track__history,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ P @ C2 @ C3
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q @ S @ S2 )
% 0.28/0.46 & ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_valid_track_history
% 0.28/0.46 thf(fact_84_ir__valid__While1,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,K: nat,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 0.28/0.46 => ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K @ S5 @ S7 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ C2
% 0.28/0.46 @ skip
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) @ T4 @ T6 )
% 0.28/0.46 & ? [U2: ( list @ char ) > int,U3: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ T4 ) @ U2 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ T6 ) @ U3 )
% 0.28/0.46 & ( Q @ U2 @ U3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_valid_While1
% 0.28/0.46 thf(fact_85_add__right__cancel,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel_semigroup_add @ A )
% 0.28/0.46 => ! [B2: A,A2: A,C2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.28/0.46 = ( plus_plus @ A @ C2 @ A2 ) )
% 0.28/0.46 = ( B2 = C2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_right_cancel
% 0.28/0.46 thf(fact_86_add__left__cancel,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel_semigroup_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A,C2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ C2 ) )
% 0.28/0.46 = ( B2 = C2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_left_cancel
% 0.28/0.46 thf(fact_87_ir__valid__If,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati167478067_valid @ P @ ( if @ B2 @ C1 @ C22 ) @ C3 @ Q )
% 0.28/0.46 => ( ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ C1
% 0.28/0.46 @ C3
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q @ T4 @ T6 )
% 0.28/0.46 & ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S5 ) @ T4 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) ) ) )
% 0.28/0.46 & ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ~ ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ C22
% 0.28/0.46 @ C3
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q @ T4 @ T6 )
% 0.28/0.46 & ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S5 ) @ T4 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 0.28/0.46 & ~ ( bval @ B2 @ S5 ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_valid_If
% 0.28/0.46 thf(fact_88_while__unfold,axiom,
% 0.28/0.46 ! [B2: bexp,C2: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S6 ) @ T5 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ ( seq @ C2 @ ( while @ B2 @ C2 ) ) @ skip ) @ S6 ) @ T5 ) ) ).
% 0.28/0.46
% 0.28/0.46 % while_unfold
% 0.28/0.46 thf(fact_89_If__True__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_1: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_2: com] :
% 0.28/0.46 ( ( relati167478067_valid
% 0.28/0.46 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ A6 @ C4 )
% 0.28/0.46 & ( bval @ B2 @ A6 ) )
% 0.28/0.46 @ C_1
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % If_True_ir_valid
% 0.28/0.46 thf(fact_90_If__False__ir__valid,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_1: com] :
% 0.28/0.46 ( ( relati167478067_valid
% 0.28/0.46 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ A6 @ C4 )
% 0.28/0.46 & ~ ( bval @ B2 @ A6 ) )
% 0.28/0.46 @ C_2
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % If_False_ir_valid
% 0.28/0.46 thf(fact_91_ir__While__True,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_While_True
% 0.28/0.46 thf(fact_92_com_Oinject_I3_J,axiom,
% 0.28/0.46 ! [X41: bexp,X42: com,X43: com,Y41: bexp,Y42: com,Y43: com] :
% 0.28/0.46 ( ( ( if @ X41 @ X42 @ X43 )
% 0.28/0.46 = ( if @ Y41 @ Y42 @ Y43 ) )
% 0.28/0.46 = ( ( X41 = Y41 )
% 0.28/0.46 & ( X42 = Y42 )
% 0.28/0.46 & ( X43 = Y43 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.inject(3)
% 0.28/0.46 thf(fact_93_ir__Skip__Skip,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] : ( relati1493963588_hoare @ P @ skip @ skip @ P ) ).
% 0.28/0.46
% 0.28/0.46 % ir_Skip_Skip
% 0.28/0.46 thf(fact_94_ir__hoare__Skip__Skip,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ P @ skip @ skip @ Q )
% 0.28/0.46 = ( ! [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q @ S5 @ S7 )
% 0.28/0.46 => ( P @ S5 @ S7 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_hoare_Skip_Skip
% 0.28/0.46 thf(fact_95_ir__disj,axiom,
% 0.28/0.46 ! [P_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ P_1 @ C2 @ C3 @ Q_1 )
% 0.28/0.46 => ( ( relati1493963588_hoare @ P_2 @ C2 @ C3 @ Q_2 )
% 0.28/0.46 => ( relati1493963588_hoare
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P_1 @ S5 @ S7 )
% 0.28/0.46 | ( P_2 @ S5 @ S7 ) )
% 0.28/0.46 @ C2
% 0.28/0.46 @ C3
% 0.28/0.46 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q_1 @ T4 @ T6 )
% 0.28/0.46 | ( Q_2 @ T4 @ T6 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_disj
% 0.28/0.46 thf(fact_96_ir__pre,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S3 @ S4 )
% 0.28/0.46 => ( P2 @ S3 @ S4 ) )
% 0.28/0.46 => ( relati1493963588_hoare @ P2 @ C2 @ C3 @ Q ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_pre
% 0.28/0.46 thf(fact_97_ir__post,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q2 @ S3 @ S4 )
% 0.28/0.46 => ( Q @ S3 @ S4 ) )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ C2 @ C3 @ Q2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_post
% 0.28/0.46 thf(fact_98_ir__conseq,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S3 @ S4 )
% 0.28/0.46 => ( P2 @ S3 @ S4 ) )
% 0.28/0.46 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q2 @ S3 @ S4 )
% 0.28/0.46 => ( Q @ S3 @ S4 ) )
% 0.28/0.46 => ( relati1493963588_hoare @ P2 @ C2 @ C3 @ Q2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_conseq
% 0.28/0.46 thf(fact_99_ir__If__False,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_1: com] :
% 0.28/0.46 ( ( relati1493963588_hoare
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ~ ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ C_2
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_If_False
% 0.28/0.46 thf(fact_100_ir__If__True,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_1: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_2: com] :
% 0.28/0.46 ( ( relati1493963588_hoare
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ C_1
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_If_True
% 0.28/0.46 thf(fact_101_soundness,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % soundness
% 0.28/0.46 thf(fact_102_com_Odistinct_I19_J,axiom,
% 0.28/0.46 ! [X41: bexp,X42: com,X43: com,X51: bexp,X52: com] :
% 0.28/0.46 ( ( if @ X41 @ X42 @ X43 )
% 0.28/0.46 != ( while @ X51 @ X52 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(19)
% 0.28/0.46 thf(fact_103_com_Odistinct_I5_J,axiom,
% 0.28/0.46 ! [X41: bexp,X42: com,X43: com] :
% 0.28/0.46 ( skip
% 0.28/0.46 != ( if @ X41 @ X42 @ X43 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(5)
% 0.28/0.46 thf(fact_104_com_Odistinct_I15_J,axiom,
% 0.28/0.46 ! [X31: com,X32: com,X41: bexp,X42: com,X43: com] :
% 0.28/0.46 ( ( seq @ X31 @ X32 )
% 0.28/0.46 != ( if @ X41 @ X42 @ X43 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(15)
% 0.28/0.46 thf(fact_105_ir__sym,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ ( relati1716060877e_flip @ P ) @ C2 @ C3 @ ( relati1716060877e_flip @ Q ) )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ C3 @ C2 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_sym
% 0.28/0.46 thf(fact_106_ir__Seq1,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.28/0.46 => ( ( relati1493963588_hoare @ Q @ D3 @ skip @ R )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ ( seq @ C2 @ D3 ) @ C3 @ R ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_Seq1
% 0.28/0.46 thf(fact_107_commute__if,axiom,
% 0.28/0.46 ! [B1: bexp,B22: bexp,C11: com,C12: com,C22: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B1 @ ( if @ B22 @ C11 @ C12 ) @ C22 ) @ S6 ) @ T5 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B22 @ ( if @ B1 @ C11 @ C22 ) @ ( if @ B1 @ C12 @ C22 ) ) @ S6 ) @ T5 ) ) ).
% 0.28/0.46
% 0.28/0.46 % commute_if
% 0.28/0.46 thf(fact_108_triv__if,axiom,
% 0.28/0.46 ! [B2: bexp,C2: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C2 @ C2 ) @ S6 ) @ T5 )
% 0.28/0.46 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 ) ) ).
% 0.28/0.46
% 0.28/0.46 % triv_if
% 0.28/0.46 thf(fact_109_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( ab_semigroup_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A,C2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ab_semigroup_add_class.add_ac(1)
% 0.28/0.46 thf(fact_110_add__mono__thms__linordered__semiring_I4_J,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( ordere779506340up_add @ A )
% 0.28/0.46 => ! [I: A,J: A,K: A,L: A] :
% 0.28/0.46 ( ( ( I = J )
% 0.28/0.46 & ( K = L ) )
% 0.28/0.46 => ( ( plus_plus @ A @ I @ K )
% 0.28/0.46 = ( plus_plus @ A @ J @ L ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_mono_thms_linordered_semiring(4)
% 0.28/0.46 thf(fact_111_group__cancel_Oadd1,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( comm_monoid_add @ A )
% 0.28/0.46 => ! [A5: A,K: A,A2: A,B2: A] :
% 0.28/0.46 ( ( A5
% 0.28/0.46 = ( plus_plus @ A @ K @ A2 ) )
% 0.28/0.46 => ( ( plus_plus @ A @ A5 @ B2 )
% 0.28/0.46 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % group_cancel.add1
% 0.28/0.46 thf(fact_112_group__cancel_Oadd2,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( comm_monoid_add @ A )
% 0.28/0.46 => ! [B5: A,K: A,B2: A,A2: A] :
% 0.28/0.46 ( ( B5
% 0.28/0.46 = ( plus_plus @ A @ K @ B2 ) )
% 0.28/0.46 => ( ( plus_plus @ A @ A2 @ B5 )
% 0.28/0.46 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % group_cancel.add2
% 0.28/0.46 thf(fact_113_add_Oassoc,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( semigroup_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A,C2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.assoc
% 0.28/0.46 thf(fact_114_add_Oleft__cancel,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( group_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A,C2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ C2 ) )
% 0.28/0.46 = ( B2 = C2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.left_cancel
% 0.28/0.46 thf(fact_115_add_Oright__cancel,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( group_add @ A )
% 0.28/0.46 => ! [B2: A,A2: A,C2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.28/0.46 = ( plus_plus @ A @ C2 @ A2 ) )
% 0.28/0.46 = ( B2 = C2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.right_cancel
% 0.28/0.46 thf(fact_116_add_Ocommute,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( ab_semigroup_add @ A )
% 0.28/0.46 => ( ( plus_plus @ A )
% 0.28/0.46 = ( ^ [A6: A,B6: A] : ( plus_plus @ A @ B6 @ A6 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.commute
% 0.28/0.46 thf(fact_117_add_Oleft__commute,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( ab_semigroup_add @ A )
% 0.28/0.46 => ! [B2: A,A2: A,C2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ B2 @ ( plus_plus @ A @ A2 @ C2 ) )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.left_commute
% 0.28/0.46 thf(fact_118_add__left__imp__eq,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel_semigroup_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A,C2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ C2 ) )
% 0.28/0.46 => ( B2 = C2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_left_imp_eq
% 0.28/0.46 thf(fact_119_add__right__imp__eq,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel_semigroup_add @ A )
% 0.28/0.46 => ! [B2: A,A2: A,C2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.28/0.46 = ( plus_plus @ A @ C2 @ A2 ) )
% 0.28/0.46 => ( B2 = C2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_right_imp_eq
% 0.28/0.46 thf(fact_120_ir__Skip,axiom,
% 0.28/0.46 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 0.28/0.46 ( ! [T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.28/0.46 ( ( Q @ T7 @ T8 )
% 0.28/0.46 => ? [S8: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ T7 @ S8 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S8 ) @ T8 ) ) )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ skip @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_Skip
% 0.28/0.46 thf(fact_121_IfFalse,axiom,
% 0.28/0.46 ! [B2: bexp,S: ( list @ char ) > int,C_2: com,T2: ( list @ char ) > int,C_1: com] :
% 0.28/0.46 ( ~ ( bval @ B2 @ S )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S ) @ T2 )
% 0.28/0.46 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S ) @ T2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % IfFalse
% 0.28/0.46 thf(fact_122_IfTrue,axiom,
% 0.28/0.46 ! [B2: bexp,S: ( list @ char ) > int,C_1: com,T2: ( list @ char ) > int,C_2: com] :
% 0.28/0.46 ( ( bval @ B2 @ S )
% 0.28/0.46 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S ) @ T2 )
% 0.28/0.46 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S ) @ T2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % IfTrue
% 0.28/0.46 thf(fact_123_IfE,axiom,
% 0.28/0.46 ! [B2: bexp,C1: com,C22: com,S: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 0.28/0.46 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C1 @ C22 ) @ S ) @ T2 )
% 0.28/0.46 => ( ( ( bval @ B2 @ S )
% 0.28/0.46 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T2 ) )
% 0.28/0.46 => ~ ( ~ ( bval @ B2 @ S )
% 0.28/0.46 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S ) @ T2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % IfE
% 0.28/0.46 thf(fact_124_ir__While__False,axiom,
% 0.28/0.46 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 0.28/0.46 ( ( relati1493963588_hoare
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ S5 @ S7 )
% 0.28/0.46 & ~ ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ skip
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_While_False
% 0.28/0.46 thf(fact_125_com_Oexhaust,axiom,
% 0.28/0.46 ! [Y: com] :
% 0.28/0.46 ( ( Y != skip )
% 0.28/0.46 => ( ! [X21: list @ char,X22: aexp] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( assign @ X21 @ X22 ) )
% 0.28/0.46 => ( ! [X312: com,X322: com] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( seq @ X312 @ X322 ) )
% 0.28/0.46 => ( ! [X412: bexp,X422: com,X432: com] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( if @ X412 @ X422 @ X432 ) )
% 0.28/0.46 => ~ ! [X512: bexp,X522: com] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( while @ X512 @ X522 ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.exhaust
% 0.28/0.46 thf(fact_126_com_Oinduct,axiom,
% 0.28/0.46 ! [P: com > $o,Com: com] :
% 0.28/0.46 ( ( P @ skip )
% 0.28/0.46 => ( ! [X12: list @ char,X23: aexp] : ( P @ ( assign @ X12 @ X23 ) )
% 0.28/0.46 => ( ! [X12: com,X23: com] :
% 0.28/0.46 ( ( P @ X12 )
% 0.28/0.46 => ( ( P @ X23 )
% 0.28/0.46 => ( P @ ( seq @ X12 @ X23 ) ) ) )
% 0.28/0.46 => ( ! [X12: bexp,X23: com,X33: com] :
% 0.28/0.46 ( ( P @ X23 )
% 0.28/0.46 => ( ( P @ X33 )
% 0.28/0.46 => ( P @ ( if @ X12 @ X23 @ X33 ) ) ) )
% 0.28/0.46 => ( ! [X12: bexp,X23: com] :
% 0.28/0.46 ( ( P @ X23 )
% 0.28/0.46 => ( P @ ( while @ X12 @ X23 ) ) )
% 0.28/0.46 => ( P @ Com ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.induct
% 0.28/0.46 thf(fact_127_image2__def,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType] :
% 0.28/0.46 ( ( bNF_Greatest_image2 @ C @ A @ B )
% 0.28/0.46 = ( ^ [A7: set @ C,F4: C > A,G4: C > B] :
% 0.28/0.46 ( collect @ ( product_prod @ A @ B )
% 0.28/0.46 @ ^ [Uu: product_prod @ A @ B] :
% 0.28/0.46 ? [A6: C] :
% 0.28/0.46 ( ( Uu
% 0.28/0.46 = ( product_Pair @ A @ B @ ( F4 @ A6 ) @ ( G4 @ A6 ) ) )
% 0.28/0.46 & ( member @ C @ A6 @ A7 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % image2_def
% 0.28/0.46 thf(fact_128_While__backwards__frontier__ir__valid,axiom,
% 0.28/0.46 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ! [N2: nat] :
% 0.28/0.46 ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ N2 @ S5 @ S7 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ C2
% 0.28/0.46 @ skip
% 0.28/0.46 @ ( P @ ( suc @ N2 ) ) )
% 0.28/0.46 => ( ( relati167478067_valid
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ? [N4: nat] : ( P @ N4 @ S5 @ S7 )
% 0.28/0.46 @ ( while @ B2 @ C2 )
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati167478067_valid @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % While_backwards_frontier_ir_valid
% 0.28/0.46 thf(fact_129_is__num__normalize_I1_J,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( neg_numeral @ A )
% 0.28/0.46 => ! [A2: A,B2: A,C2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % is_num_normalize(1)
% 0.28/0.46 thf(fact_130_com_Oinject_I1_J,axiom,
% 0.28/0.46 ! [X212: list @ char,X222: aexp,Y21: list @ char,Y22: aexp] :
% 0.28/0.46 ( ( ( assign @ X212 @ X222 )
% 0.28/0.46 = ( assign @ Y21 @ Y22 ) )
% 0.28/0.46 = ( ( X212 = Y21 )
% 0.28/0.46 & ( X222 = Y22 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.inject(1)
% 0.28/0.46 thf(fact_131_add_Oleft__neutral,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( monoid_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 0.28/0.46 = A2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.left_neutral
% 0.28/0.46 thf(fact_132_add_Oright__neutral,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( monoid_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 0.28/0.46 = A2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.right_neutral
% 0.28/0.46 thf(fact_133_double__zero,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( linord219039673up_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ A2 @ A2 )
% 0.28/0.46 = ( zero_zero @ A ) )
% 0.28/0.46 = ( A2
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % double_zero
% 0.28/0.46 thf(fact_134_double__zero__sym,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( linord219039673up_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( ( zero_zero @ A )
% 0.28/0.46 = ( plus_plus @ A @ A2 @ A2 ) )
% 0.28/0.46 = ( A2
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % double_zero_sym
% 0.28/0.46 thf(fact_135_add__cancel__left__left,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel1352612707id_add @ A )
% 0.28/0.46 => ! [B2: A,A2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.28/0.46 = A2 )
% 0.28/0.46 = ( B2
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_cancel_left_left
% 0.28/0.46 thf(fact_136_add__cancel__left__right,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel1352612707id_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.28/0.46 = A2 )
% 0.28/0.46 = ( B2
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_cancel_left_right
% 0.28/0.46 thf(fact_137_add__cancel__right__left,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel1352612707id_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A] :
% 0.28/0.46 ( ( A2
% 0.28/0.46 = ( plus_plus @ A @ B2 @ A2 ) )
% 0.28/0.46 = ( B2
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_cancel_right_left
% 0.28/0.46 thf(fact_138_add__cancel__right__right,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel1352612707id_add @ A )
% 0.28/0.46 => ! [A2: A,B2: A] :
% 0.28/0.46 ( ( A2
% 0.28/0.46 = ( plus_plus @ A @ A2 @ B2 ) )
% 0.28/0.46 = ( B2
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_cancel_right_right
% 0.28/0.46 thf(fact_139_add__eq__0__iff__both__eq__0,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( canoni770627133id_add @ A )
% 0.28/0.46 => ! [X: A,Y: A] :
% 0.28/0.46 ( ( ( plus_plus @ A @ X @ Y )
% 0.28/0.46 = ( zero_zero @ A ) )
% 0.28/0.46 = ( ( X
% 0.28/0.46 = ( zero_zero @ A ) )
% 0.28/0.46 & ( Y
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_eq_0_iff_both_eq_0
% 0.28/0.46 thf(fact_140_zero__eq__add__iff__both__eq__0,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( canoni770627133id_add @ A )
% 0.28/0.46 => ! [X: A,Y: A] :
% 0.28/0.46 ( ( ( zero_zero @ A )
% 0.28/0.46 = ( plus_plus @ A @ X @ Y ) )
% 0.28/0.46 = ( ( X
% 0.28/0.46 = ( zero_zero @ A ) )
% 0.28/0.46 & ( Y
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % zero_eq_add_iff_both_eq_0
% 0.28/0.46 thf(fact_141_add__is__0,axiom,
% 0.28/0.46 ! [M: nat,N: nat] :
% 0.28/0.46 ( ( ( plus_plus @ nat @ M @ N )
% 0.28/0.46 = ( zero_zero @ nat ) )
% 0.28/0.46 = ( ( M
% 0.28/0.46 = ( zero_zero @ nat ) )
% 0.28/0.46 & ( N
% 0.28/0.46 = ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_is_0
% 0.28/0.46 thf(fact_142_Nat_Oadd__0__right,axiom,
% 0.28/0.46 ! [M: nat] :
% 0.28/0.46 ( ( plus_plus @ nat @ M @ ( zero_zero @ nat ) )
% 0.28/0.46 = M ) ).
% 0.28/0.46
% 0.28/0.46 % Nat.add_0_right
% 0.28/0.46 thf(fact_143_zero__reorient,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( zero @ A )
% 0.28/0.46 => ! [X: A] :
% 0.28/0.46 ( ( ( zero_zero @ A )
% 0.28/0.46 = X )
% 0.28/0.46 = ( X
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % zero_reorient
% 0.28/0.46 thf(fact_144_comm__monoid__add__class_Oadd__0,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( comm_monoid_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 0.28/0.46 = A2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % comm_monoid_add_class.add_0
% 0.28/0.46 thf(fact_145_add_Ocomm__neutral,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( comm_monoid_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 0.28/0.46 = A2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.comm_neutral
% 0.28/0.46 thf(fact_146_add_Ogroup__left__neutral,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( group_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 0.28/0.46 = A2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % add.group_left_neutral
% 0.28/0.46 thf(fact_147_nat_Odistinct_I1_J,axiom,
% 0.28/0.46 ! [X2: nat] :
% 0.28/0.46 ( ( zero_zero @ nat )
% 0.28/0.46 != ( suc @ X2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % nat.distinct(1)
% 0.28/0.46 thf(fact_148_old_Onat_Odistinct_I2_J,axiom,
% 0.28/0.46 ! [Nat3: nat] :
% 0.28/0.46 ( ( suc @ Nat3 )
% 0.28/0.46 != ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.nat.distinct(2)
% 0.28/0.46 thf(fact_149_old_Onat_Odistinct_I1_J,axiom,
% 0.28/0.46 ! [Nat2: nat] :
% 0.28/0.46 ( ( zero_zero @ nat )
% 0.28/0.46 != ( suc @ Nat2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.nat.distinct(1)
% 0.28/0.46 thf(fact_150_nat_OdiscI,axiom,
% 0.28/0.46 ! [Nat: nat,X2: nat] :
% 0.28/0.46 ( ( Nat
% 0.28/0.46 = ( suc @ X2 ) )
% 0.28/0.46 => ( Nat
% 0.28/0.46 != ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % nat.discI
% 0.28/0.46 thf(fact_151_nat__induct,axiom,
% 0.28/0.46 ! [P: nat > $o,N: nat] :
% 0.28/0.46 ( ( P @ ( zero_zero @ nat ) )
% 0.28/0.46 => ( ! [N2: nat] :
% 0.28/0.46 ( ( P @ N2 )
% 0.28/0.46 => ( P @ ( suc @ N2 ) ) )
% 0.28/0.46 => ( P @ N ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % nat_induct
% 0.28/0.46 thf(fact_152_diff__induct,axiom,
% 0.28/0.46 ! [P: nat > nat > $o,M: nat,N: nat] :
% 0.28/0.46 ( ! [X4: nat] : ( P @ X4 @ ( zero_zero @ nat ) )
% 0.28/0.46 => ( ! [Y3: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y3 ) )
% 0.28/0.46 => ( ! [X4: nat,Y3: nat] :
% 0.28/0.46 ( ( P @ X4 @ Y3 )
% 0.28/0.46 => ( P @ ( suc @ X4 ) @ ( suc @ Y3 ) ) )
% 0.28/0.46 => ( P @ M @ N ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % diff_induct
% 0.28/0.46 thf(fact_153_zero__induct,axiom,
% 0.28/0.46 ! [P: nat > $o,K: nat] :
% 0.28/0.46 ( ( P @ K )
% 0.28/0.46 => ( ! [N2: nat] :
% 0.28/0.46 ( ( P @ ( suc @ N2 ) )
% 0.28/0.46 => ( P @ N2 ) )
% 0.28/0.46 => ( P @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % zero_induct
% 0.28/0.46 thf(fact_154_Suc__neq__Zero,axiom,
% 0.28/0.46 ! [M: nat] :
% 0.28/0.46 ( ( suc @ M )
% 0.28/0.46 != ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % Suc_neq_Zero
% 0.28/0.46 thf(fact_155_Zero__neq__Suc,axiom,
% 0.28/0.46 ! [M: nat] :
% 0.28/0.46 ( ( zero_zero @ nat )
% 0.28/0.46 != ( suc @ M ) ) ).
% 0.28/0.46
% 0.28/0.46 % Zero_neq_Suc
% 0.28/0.46 thf(fact_156_Zero__not__Suc,axiom,
% 0.28/0.46 ! [M: nat] :
% 0.28/0.46 ( ( zero_zero @ nat )
% 0.28/0.46 != ( suc @ M ) ) ).
% 0.28/0.46
% 0.28/0.46 % Zero_not_Suc
% 0.28/0.46 thf(fact_157_old_Onat_Oexhaust,axiom,
% 0.28/0.46 ! [Y: nat] :
% 0.28/0.46 ( ( Y
% 0.28/0.46 != ( zero_zero @ nat ) )
% 0.28/0.46 => ~ ! [Nat4: nat] :
% 0.28/0.46 ( Y
% 0.28/0.46 != ( suc @ Nat4 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.nat.exhaust
% 0.28/0.46 thf(fact_158_old_Onat_Oinducts,axiom,
% 0.28/0.46 ! [P: nat > $o,Nat: nat] :
% 0.28/0.46 ( ( P @ ( zero_zero @ nat ) )
% 0.28/0.46 => ( ! [Nat4: nat] :
% 0.28/0.46 ( ( P @ Nat4 )
% 0.28/0.46 => ( P @ ( suc @ Nat4 ) ) )
% 0.28/0.46 => ( P @ Nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % old.nat.inducts
% 0.28/0.46 thf(fact_159_not0__implies__Suc,axiom,
% 0.28/0.46 ! [N: nat] :
% 0.28/0.46 ( ( N
% 0.28/0.46 != ( zero_zero @ nat ) )
% 0.28/0.46 => ? [M2: nat] :
% 0.28/0.46 ( N
% 0.28/0.46 = ( suc @ M2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % not0_implies_Suc
% 0.28/0.46 thf(fact_160_plus__nat_Oadd__0,axiom,
% 0.28/0.46 ! [N: nat] :
% 0.28/0.46 ( ( plus_plus @ nat @ ( zero_zero @ nat ) @ N )
% 0.28/0.46 = N ) ).
% 0.28/0.46
% 0.28/0.46 % plus_nat.add_0
% 0.28/0.46 thf(fact_161_add__eq__self__zero,axiom,
% 0.28/0.46 ! [M: nat,N: nat] :
% 0.28/0.46 ( ( ( plus_plus @ nat @ M @ N )
% 0.28/0.46 = M )
% 0.28/0.46 => ( N
% 0.28/0.46 = ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_eq_self_zero
% 0.28/0.46 thf(fact_162_image2__eqI,axiom,
% 0.28/0.46 ! [A: $tType,C: $tType,B: $tType,B2: A,F3: B > A,X: B,C2: C,G3: B > C,A5: set @ B] :
% 0.28/0.46 ( ( B2
% 0.28/0.46 = ( F3 @ X ) )
% 0.28/0.46 => ( ( C2
% 0.28/0.46 = ( G3 @ X ) )
% 0.28/0.46 => ( ( member @ B @ X @ A5 )
% 0.28/0.46 => ( member @ ( product_prod @ A @ C ) @ ( product_Pair @ A @ C @ B2 @ C2 ) @ ( bNF_Greatest_image2 @ B @ A @ C @ A5 @ F3 @ G3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % image2_eqI
% 0.28/0.46 thf(fact_163_com_Odistinct_I13_J,axiom,
% 0.28/0.46 ! [X212: list @ char,X222: aexp,X51: bexp,X52: com] :
% 0.28/0.46 ( ( assign @ X212 @ X222 )
% 0.28/0.46 != ( while @ X51 @ X52 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(13)
% 0.28/0.46 thf(fact_164_com_Odistinct_I1_J,axiom,
% 0.28/0.46 ! [X212: list @ char,X222: aexp] :
% 0.28/0.46 ( skip
% 0.28/0.46 != ( assign @ X212 @ X222 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(1)
% 0.28/0.46 thf(fact_165_com_Odistinct_I9_J,axiom,
% 0.28/0.46 ! [X212: list @ char,X222: aexp,X31: com,X32: com] :
% 0.28/0.46 ( ( assign @ X212 @ X222 )
% 0.28/0.46 != ( seq @ X31 @ X32 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(9)
% 0.28/0.46 thf(fact_166_com_Odistinct_I11_J,axiom,
% 0.28/0.46 ! [X212: list @ char,X222: aexp,X41: bexp,X42: com,X43: com] :
% 0.28/0.46 ( ( assign @ X212 @ X222 )
% 0.28/0.46 != ( if @ X41 @ X42 @ X43 ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.distinct(11)
% 0.28/0.46 thf(fact_167_get__back_Osimps_I1_J,axiom,
% 0.28/0.46 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com] :
% 0.28/0.46 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( zero_zero @ nat ) )
% 0.28/0.46 = P ) ).
% 0.28/0.46
% 0.28/0.46 % get_back.simps(1)
% 0.28/0.46 thf(fact_168_one__is__add,axiom,
% 0.28/0.46 ! [M: nat,N: nat] :
% 0.28/0.46 ( ( ( suc @ ( zero_zero @ nat ) )
% 0.28/0.46 = ( plus_plus @ nat @ M @ N ) )
% 0.28/0.46 = ( ( ( M
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) )
% 0.28/0.46 & ( N
% 0.28/0.46 = ( zero_zero @ nat ) ) )
% 0.28/0.46 | ( ( M
% 0.28/0.46 = ( zero_zero @ nat ) )
% 0.28/0.46 & ( N
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % one_is_add
% 0.28/0.46 thf(fact_169_add__is__1,axiom,
% 0.28/0.46 ! [M: nat,N: nat] :
% 0.28/0.46 ( ( ( plus_plus @ nat @ M @ N )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) )
% 0.28/0.46 = ( ( ( M
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) )
% 0.28/0.46 & ( N
% 0.28/0.46 = ( zero_zero @ nat ) ) )
% 0.28/0.46 | ( ( M
% 0.28/0.46 = ( zero_zero @ nat ) )
% 0.28/0.46 & ( N
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_is_1
% 0.28/0.46 thf(fact_170_ir__While__backwards__frontier,axiom,
% 0.28/0.46 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.28/0.46 ( ! [N2: nat] :
% 0.28/0.46 ( relati1493963588_hoare
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ( ( P @ N2 @ S5 @ S7 )
% 0.28/0.46 & ( bval @ B2 @ S5 ) )
% 0.28/0.46 @ C2
% 0.28/0.46 @ skip
% 0.28/0.46 @ ( P @ ( suc @ N2 ) ) )
% 0.28/0.46 => ( ( relati1493963588_hoare
% 0.28/0.46 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 0.28/0.46 ? [N4: nat] : ( P @ N4 @ S5 @ S7 )
% 0.28/0.46 @ ( while @ B2 @ C2 )
% 0.28/0.46 @ C3
% 0.28/0.46 @ Q )
% 0.28/0.46 => ( relati1493963588_hoare @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ir_While_backwards_frontier
% 0.28/0.46 thf(fact_171_com_Osize__gen_I4_J,axiom,
% 0.28/0.46 ! [X41: bexp,X42: com,X43: com] :
% 0.28/0.46 ( ( size_com @ ( if @ X41 @ X42 @ X43 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X42 ) @ ( size_com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size_gen(4)
% 0.28/0.46 thf(fact_172_com_Osize__gen_I3_J,axiom,
% 0.28/0.46 ! [X31: com,X32: com] :
% 0.28/0.46 ( ( size_com @ ( seq @ X31 @ X32 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X31 ) @ ( size_com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size_gen(3)
% 0.28/0.46 thf(fact_173_com_Osize__gen_I5_J,axiom,
% 0.28/0.46 ! [X51: bexp,X52: com] :
% 0.28/0.46 ( ( size_com @ ( while @ X51 @ X52 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size_gen(5)
% 0.28/0.46 thf(fact_174_com_Osize_I9_J,axiom,
% 0.28/0.46 ! [X41: bexp,X42: com,X43: com] :
% 0.28/0.46 ( ( size_size @ com @ ( if @ X41 @ X42 @ X43 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X42 ) @ ( size_size @ com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size(9)
% 0.28/0.46 thf(fact_175_size__neq__size__imp__neq,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( size @ A )
% 0.28/0.46 => ! [X: A,Y: A] :
% 0.28/0.46 ( ( ( size_size @ A @ X )
% 0.28/0.46 != ( size_size @ A @ Y ) )
% 0.28/0.46 => ( X != Y ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % size_neq_size_imp_neq
% 0.28/0.46 thf(fact_176_com_Osize_I6_J,axiom,
% 0.28/0.46 ( ( size_size @ com @ skip )
% 0.28/0.46 = ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size(6)
% 0.28/0.46 thf(fact_177_com_Osize_I7_J,axiom,
% 0.28/0.46 ! [X212: list @ char,X222: aexp] :
% 0.28/0.46 ( ( size_size @ com @ ( assign @ X212 @ X222 ) )
% 0.28/0.46 = ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size(7)
% 0.28/0.46 thf(fact_178_com_Osize__gen_I1_J,axiom,
% 0.28/0.46 ( ( size_com @ skip )
% 0.28/0.46 = ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size_gen(1)
% 0.28/0.46 thf(fact_179_com_Osize__gen_I2_J,axiom,
% 0.28/0.46 ! [X212: list @ char,X222: aexp] :
% 0.28/0.46 ( ( size_com @ ( assign @ X212 @ X222 ) )
% 0.28/0.46 = ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size_gen(2)
% 0.28/0.46 thf(fact_180_com_Osize_I10_J,axiom,
% 0.28/0.46 ! [X51: bexp,X52: com] :
% 0.28/0.46 ( ( size_size @ com @ ( while @ X51 @ X52 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_size @ com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size(10)
% 0.28/0.46 thf(fact_181_com_Osize_I8_J,axiom,
% 0.28/0.46 ! [X31: com,X32: com] :
% 0.28/0.46 ( ( size_size @ com @ ( seq @ X31 @ X32 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X31 ) @ ( size_size @ com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % com.size(8)
% 0.28/0.46 thf(fact_182_Euclid__induct,axiom,
% 0.28/0.46 ! [P: nat > nat > $o,A2: nat,B2: nat] :
% 0.28/0.46 ( ! [A4: nat,B4: nat] :
% 0.28/0.46 ( ( P @ A4 @ B4 )
% 0.28/0.46 = ( P @ B4 @ A4 ) )
% 0.28/0.46 => ( ! [A4: nat] : ( P @ A4 @ ( zero_zero @ nat ) )
% 0.28/0.46 => ( ! [A4: nat,B4: nat] :
% 0.28/0.46 ( ( P @ A4 @ B4 )
% 0.28/0.46 => ( P @ A4 @ ( plus_plus @ nat @ A4 @ B4 ) ) )
% 0.28/0.46 => ( P @ A2 @ B2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Euclid_induct
% 0.28/0.46 thf(fact_183_dependent__nat__choice,axiom,
% 0.28/0.46 ! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
% 0.28/0.46 ( ? [X_1: A] : ( P @ ( zero_zero @ nat ) @ X_1 )
% 0.28/0.46 => ( ! [X4: A,N2: nat] :
% 0.28/0.46 ( ( P @ N2 @ X4 )
% 0.28/0.46 => ? [Y5: A] :
% 0.28/0.46 ( ( P @ ( suc @ N2 ) @ Y5 )
% 0.28/0.46 & ( Q @ N2 @ X4 @ Y5 ) ) )
% 0.28/0.46 => ? [F2: nat > A] :
% 0.28/0.46 ! [N3: nat] :
% 0.28/0.46 ( ( P @ N3 @ ( F2 @ N3 ) )
% 0.28/0.46 & ( Q @ N3 @ ( F2 @ N3 ) @ ( F2 @ ( suc @ N3 ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % dependent_nat_choice
% 0.28/0.46 thf(fact_184_verit__sum__simplify,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( cancel1352612707id_add @ A )
% 0.28/0.46 => ! [A2: A] :
% 0.28/0.46 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 0.28/0.46 = A2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % verit_sum_simplify
% 0.28/0.46 thf(fact_185_add__0__iff,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( semiri456707255roduct @ A )
% 0.28/0.46 => ! [B2: A,A2: A] :
% 0.28/0.46 ( ( B2
% 0.28/0.46 = ( plus_plus @ A @ B2 @ A2 ) )
% 0.28/0.46 = ( A2
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % add_0_iff
% 0.28/0.46 thf(fact_186_relImage__def,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType] :
% 0.28/0.46 ( ( bNF_Gr1317331620lImage @ B @ A )
% 0.28/0.46 = ( ^ [R2: set @ ( product_prod @ B @ B ),F4: B > A] :
% 0.28/0.46 ( collect @ ( product_prod @ A @ A )
% 0.28/0.46 @ ^ [Uu: product_prod @ A @ A] :
% 0.28/0.46 ? [A1: B,A22: B] :
% 0.28/0.46 ( ( Uu
% 0.28/0.46 = ( product_Pair @ A @ A @ ( F4 @ A1 ) @ ( F4 @ A22 ) ) )
% 0.28/0.46 & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ A1 @ A22 ) @ R2 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % relImage_def
% 0.28/0.46 thf(fact_187_relInvImage__def,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType] :
% 0.28/0.46 ( ( bNF_Gr2107612801vImage @ A @ B )
% 0.28/0.46 = ( ^ [A7: set @ A,R2: set @ ( product_prod @ B @ B ),F4: A > B] :
% 0.28/0.46 ( collect @ ( product_prod @ A @ A )
% 0.28/0.46 @ ^ [Uu: product_prod @ A @ A] :
% 0.28/0.46 ? [A1: A,A22: A] :
% 0.28/0.46 ( ( Uu
% 0.28/0.46 = ( product_Pair @ A @ A @ A1 @ A22 ) )
% 0.28/0.46 & ( member @ A @ A1 @ A7 )
% 0.28/0.46 & ( member @ A @ A22 @ A7 )
% 0.28/0.46 & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ ( F4 @ A1 ) @ ( F4 @ A22 ) ) @ R2 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % relInvImage_def
% 0.28/0.46 thf(fact_188_fun__cong__unused__0,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType] :
% 0.28/0.46 ( ( zero @ B )
% 0.28/0.46 => ! [F3: ( A > B ) > C,G3: C] :
% 0.28/0.46 ( ( F3
% 0.28/0.46 = ( ^ [X3: A > B] : G3 ) )
% 0.28/0.46 => ( ( F3
% 0.28/0.46 @ ^ [X3: A] : ( zero_zero @ B ) )
% 0.28/0.46 = G3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % fun_cong_unused_0
% 0.28/0.46 thf(fact_189_divides__aux__eq,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( unique1598680935umeral @ A )
% 0.28/0.46 => ! [Q4: A,R3: A] :
% 0.28/0.46 ( ( unique455577585es_aux @ A @ ( product_Pair @ A @ A @ Q4 @ R3 ) )
% 0.28/0.46 = ( R3
% 0.28/0.46 = ( zero_zero @ A ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % divides_aux_eq
% 0.28/0.46 thf(fact_190_image2p__def,axiom,
% 0.28/0.46 ! [D: $tType,B: $tType,A: $tType,C: $tType] :
% 0.28/0.46 ( ( bNF_Greatest_image2p @ C @ A @ D @ B )
% 0.28/0.46 = ( ^ [F4: C > A,G4: D > B,R2: C > D > $o,X3: A,Y4: B] :
% 0.28/0.46 ? [X5: C,Y6: D] :
% 0.28/0.46 ( ( R2 @ X5 @ Y6 )
% 0.28/0.46 & ( ( F4 @ X5 )
% 0.28/0.46 = X3 )
% 0.28/0.46 & ( ( G4 @ Y6 )
% 0.28/0.46 = Y4 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % image2p_def
% 0.28/0.46 thf(fact_191_image2pI,axiom,
% 0.28/0.46 ! [A: $tType,C: $tType,D: $tType,B: $tType,R: A > B > $o,X: A,Y: B,F3: A > C,G3: B > D] :
% 0.28/0.46 ( ( R @ X @ Y )
% 0.28/0.46 => ( bNF_Greatest_image2p @ A @ C @ B @ D @ F3 @ G3 @ R @ ( F3 @ X ) @ ( G3 @ Y ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % image2pI
% 0.28/0.46 thf(fact_192_image2pE,axiom,
% 0.28/0.46 ! [D: $tType,B: $tType,A: $tType,C: $tType,F3: A > B,G3: C > D,R: A > C > $o,Fx: B,Gy: D] :
% 0.28/0.46 ( ( bNF_Greatest_image2p @ A @ B @ C @ D @ F3 @ G3 @ R @ Fx @ Gy )
% 0.28/0.46 => ~ ! [X4: A] :
% 0.28/0.46 ( ( Fx
% 0.28/0.46 = ( F3 @ X4 ) )
% 0.28/0.46 => ! [Y3: C] :
% 0.28/0.46 ( ( Gy
% 0.28/0.46 = ( G3 @ Y3 ) )
% 0.28/0.46 => ~ ( R @ X4 @ Y3 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % image2pE
% 0.28/0.46 thf(fact_193_zero__natural_Orsp,axiom,
% 0.28/0.46 ( ( zero_zero @ nat )
% 0.28/0.46 = ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % zero_natural.rsp
% 0.28/0.46 thf(fact_194_option_Osize__neq,axiom,
% 0.28/0.46 ! [A: $tType,X: option @ A] :
% 0.28/0.46 ( ( size_size @ ( option @ A ) @ X )
% 0.28/0.46 != ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.size_neq
% 0.28/0.46 thf(fact_195_option_Osize_I3_J,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( size_size @ ( option @ A ) @ ( none @ A ) )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.size(3)
% 0.28/0.46 thf(fact_196_option_Osize_I4_J,axiom,
% 0.28/0.46 ! [A: $tType,X2: A] :
% 0.28/0.46 ( ( size_size @ ( option @ A ) @ ( some @ A @ X2 ) )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.size(4)
% 0.28/0.46 thf(fact_197_option_Osize__gen_I2_J,axiom,
% 0.28/0.46 ! [A: $tType,X: A > nat,X2: A] :
% 0.28/0.46 ( ( size_option @ A @ X @ ( some @ A @ X2 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( X @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.size_gen(2)
% 0.28/0.46 thf(fact_198_option_Osize__gen_I1_J,axiom,
% 0.28/0.46 ! [A: $tType,X: A > nat] :
% 0.28/0.46 ( ( size_option @ A @ X @ ( none @ A ) )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.size_gen(1)
% 0.28/0.46 thf(fact_199_tuple__isomorphism_Osize__neq,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,C: $tType,X: tuple_isomorphism @ A @ B @ C] :
% 0.28/0.46 ( ( size_size @ ( tuple_isomorphism @ A @ B @ C ) @ X )
% 0.28/0.46 != ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % tuple_isomorphism.size_neq
% 0.28/0.46 thf(fact_200_prod_Osize__neq,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,X: product_prod @ A @ B] :
% 0.28/0.46 ( ( size_size @ ( product_prod @ A @ B ) @ X )
% 0.28/0.46 != ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % prod.size_neq
% 0.28/0.46 thf(fact_201_sum_Osize__neq,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,X: sum_sum @ A @ B] :
% 0.28/0.46 ( ( size_size @ ( sum_sum @ A @ B ) @ X )
% 0.28/0.46 != ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % sum.size_neq
% 0.28/0.46 thf(fact_202_tuple__isomorphism_Osize_I2_J,axiom,
% 0.28/0.46 ! [B: $tType,C: $tType,A: $tType,X1: A > ( product_prod @ B @ C ),X2: ( product_prod @ B @ C ) > A] :
% 0.28/0.46 ( ( size_size @ ( tuple_isomorphism @ A @ B @ C ) @ ( tuple_742722141rphism @ A @ B @ C @ X1 @ X2 ) )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % tuple_isomorphism.size(2)
% 0.28/0.46 thf(fact_203_typerep_Osize__neq,axiom,
% 0.28/0.46 ! [X: typerep] :
% 0.28/0.46 ( ( size_size @ typerep @ X )
% 0.28/0.46 != ( zero_zero @ nat ) ) ).
% 0.28/0.46
% 0.28/0.46 % typerep.size_neq
% 0.28/0.46 thf(fact_204_tuple__isomorphism_Osize__gen,axiom,
% 0.28/0.46 ! [B: $tType,C: $tType,A: $tType,Xb: A > nat,Xa: B > nat,X: C > nat,X1: A > ( product_prod @ B @ C ),X2: ( product_prod @ B @ C ) > A] :
% 0.28/0.46 ( ( tuple_1907371454rphism @ A @ B @ C @ Xb @ Xa @ X @ ( tuple_742722141rphism @ A @ B @ C @ X1 @ X2 ) )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % tuple_isomorphism.size_gen
% 0.28/0.46 thf(fact_205_sum_Osize_I3_J,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,X1: A] :
% 0.28/0.46 ( ( size_size @ ( sum_sum @ A @ B ) @ ( sum_Inl @ A @ B @ X1 ) )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sum.size(3)
% 0.28/0.46 thf(fact_206_sum_Osize__gen_I1_J,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,Xa: A > nat,X: B > nat,X1: A] :
% 0.28/0.46 ( ( basic_BNF_size_sum @ A @ B @ Xa @ X @ ( sum_Inl @ A @ B @ X1 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( Xa @ X1 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sum.size_gen(1)
% 0.28/0.46 thf(fact_207_sum_Osize_I4_J,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,X2: B] :
% 0.28/0.46 ( ( size_size @ ( sum_sum @ A @ B ) @ ( sum_Inr @ B @ A @ X2 ) )
% 0.28/0.46 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sum.size(4)
% 0.28/0.46 thf(fact_208_obj__sumE,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,S: sum_sum @ A @ B] :
% 0.28/0.46 ( ! [X4: A] :
% 0.28/0.46 ( S
% 0.28/0.46 != ( sum_Inl @ A @ B @ X4 ) )
% 0.28/0.46 => ~ ! [X4: B] :
% 0.28/0.46 ( S
% 0.28/0.46 != ( sum_Inr @ B @ A @ X4 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % obj_sumE
% 0.28/0.46 thf(fact_209_sum_Osize__gen_I2_J,axiom,
% 0.28/0.46 ! [A: $tType,B: $tType,Xa: A > nat,X: B > nat,X2: B] :
% 0.28/0.46 ( ( basic_BNF_size_sum @ A @ B @ Xa @ X @ ( sum_Inr @ B @ A @ X2 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( X @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % sum.size_gen(2)
% 0.28/0.46 thf(fact_210_not__arg__cong__Inr,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,X: A,Y: A] :
% 0.28/0.46 ( ( X != Y )
% 0.28/0.46 => ( ( sum_Inr @ A @ B @ X )
% 0.28/0.46 != ( sum_Inr @ A @ B @ Y ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % not_arg_cong_Inr
% 0.28/0.46 thf(fact_211_case__optionE,axiom,
% 0.28/0.46 ! [A: $tType,P: $o,Q: A > $o,X: option @ A] :
% 0.28/0.46 ( ( case_option @ $o @ A @ P @ Q @ X )
% 0.28/0.46 => ( ( ( X
% 0.28/0.46 = ( none @ A ) )
% 0.28/0.46 => ~ P )
% 0.28/0.46 => ~ ! [Y3: A] :
% 0.28/0.46 ( ( X
% 0.28/0.46 = ( some @ A @ Y3 ) )
% 0.28/0.46 => ~ ( Q @ Y3 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % case_optionE
% 0.28/0.46 thf(fact_212_ssubst__Pair__rhs,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,R3: A,S: B,R: set @ ( product_prod @ A @ B ),S2: B] :
% 0.28/0.46 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R3 @ S ) @ R )
% 0.28/0.46 => ( ( S2 = S )
% 0.28/0.46 => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R3 @ S2 ) @ R ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % ssubst_Pair_rhs
% 0.28/0.46 thf(fact_213_option_Ocase__distrib,axiom,
% 0.28/0.46 ! [C: $tType,B: $tType,A: $tType,H: B > C,F1: B,F22: A > B,Option: option @ A] :
% 0.28/0.46 ( ( H @ ( case_option @ B @ A @ F1 @ F22 @ Option ) )
% 0.28/0.46 = ( case_option @ C @ A @ ( H @ F1 )
% 0.28/0.46 @ ^ [X3: A] : ( H @ ( F22 @ X3 ) )
% 0.28/0.46 @ Option ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.case_distrib
% 0.28/0.46 thf(fact_214_option_Odisc__eq__case_I2_J,axiom,
% 0.28/0.46 ! [A: $tType,Option: option @ A] :
% 0.28/0.46 ( ( Option
% 0.28/0.46 != ( none @ A ) )
% 0.28/0.46 = ( case_option @ $o @ A @ $false
% 0.28/0.46 @ ^ [Uu: A] : $true
% 0.28/0.46 @ Option ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.disc_eq_case(2)
% 0.28/0.46 thf(fact_215_option_Odisc__eq__case_I1_J,axiom,
% 0.28/0.46 ! [A: $tType,Option: option @ A] :
% 0.28/0.46 ( ( Option
% 0.28/0.46 = ( none @ A ) )
% 0.28/0.46 = ( case_option @ $o @ A @ $true
% 0.28/0.46 @ ^ [Uu: A] : $false
% 0.28/0.46 @ Option ) ) ).
% 0.28/0.46
% 0.28/0.46 % option.disc_eq_case(1)
% 0.28/0.46 thf(fact_216_disjE__realizer2,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType,P: $o,Q: A > $o,X: option @ A,R: B > $o,F3: B,G3: A > B] :
% 0.28/0.46 ( ( case_option @ $o @ A @ P @ Q @ X )
% 0.28/0.46 => ( ( P
% 0.28/0.46 => ( R @ F3 ) )
% 0.28/0.46 => ( ! [Q5: A] :
% 0.28/0.46 ( ( Q @ Q5 )
% 0.28/0.46 => ( R @ ( G3 @ Q5 ) ) )
% 0.28/0.46 => ( R @ ( case_option @ B @ A @ F3 @ G3 @ X ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % disjE_realizer2
% 0.28/0.46 thf(fact_217_typerep_Osize_I2_J,axiom,
% 0.28/0.46 ! [X1: literal,X2: list @ typerep] :
% 0.28/0.46 ( ( size_size @ typerep @ ( typerep2 @ X1 @ X2 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_list @ typerep @ ( size_size @ typerep ) @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % typerep.size(2)
% 0.28/0.46 thf(fact_218_typerep_Osize__gen,axiom,
% 0.28/0.46 ! [X1: literal,X2: list @ typerep] :
% 0.28/0.46 ( ( size_typerep @ ( typerep2 @ X1 @ X2 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_list @ typerep @ size_typerep @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % typerep.size_gen
% 0.28/0.46 thf(fact_219_list_Osize__gen_I2_J,axiom,
% 0.28/0.46 ! [A: $tType,X: A > nat,X212: A,X222: list @ A] :
% 0.28/0.46 ( ( size_list @ A @ X @ ( cons @ A @ X212 @ X222 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( X @ X212 ) @ ( size_list @ A @ X @ X222 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % list.size_gen(2)
% 0.28/0.46 thf(fact_220_length__Suc__conv,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,N: nat] :
% 0.28/0.46 ( ( ( size_size @ ( list @ A ) @ Xs )
% 0.28/0.46 = ( suc @ N ) )
% 0.28/0.46 = ( ? [Y4: A,Ys: list @ A] :
% 0.28/0.46 ( ( Xs
% 0.28/0.46 = ( cons @ A @ Y4 @ Ys ) )
% 0.28/0.46 & ( ( size_size @ ( list @ A ) @ Ys )
% 0.28/0.46 = N ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % length_Suc_conv
% 0.28/0.46 thf(fact_221_Suc__length__conv,axiom,
% 0.28/0.46 ! [A: $tType,N: nat,Xs: list @ A] :
% 0.28/0.46 ( ( ( suc @ N )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Xs ) )
% 0.28/0.46 = ( ? [Y4: A,Ys: list @ A] :
% 0.28/0.46 ( ( Xs
% 0.28/0.46 = ( cons @ A @ Y4 @ Ys ) )
% 0.28/0.46 & ( ( size_size @ ( list @ A ) @ Ys )
% 0.28/0.46 = N ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Suc_length_conv
% 0.28/0.46 thf(fact_222_length__Cons,axiom,
% 0.28/0.46 ! [A: $tType,X: A,Xs: list @ A] :
% 0.28/0.46 ( ( size_size @ ( list @ A ) @ ( cons @ A @ X @ Xs ) )
% 0.28/0.46 = ( suc @ ( size_size @ ( list @ A ) @ Xs ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % length_Cons
% 0.28/0.46 thf(fact_223_list_Osize_I4_J,axiom,
% 0.28/0.46 ! [A: $tType,X212: A,X222: list @ A] :
% 0.28/0.46 ( ( size_size @ ( list @ A ) @ ( cons @ A @ X212 @ X222 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_size @ ( list @ A ) @ X222 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % list.size(4)
% 0.28/0.46 thf(fact_224_shift__def,axiom,
% 0.28/0.46 ! [B: $tType,A: $tType] :
% 0.28/0.46 ( ( bNF_Greatest_shift @ A @ B )
% 0.28/0.46 = ( ^ [Lab: ( list @ A ) > B,K2: A,Kl: list @ A] : ( Lab @ ( cons @ A @ K2 @ Kl ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % shift_def
% 0.28/0.46 thf(fact_225_set__Cons__def,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( set_Cons @ A )
% 0.28/0.46 = ( ^ [A7: set @ A,XS: set @ ( list @ A )] :
% 0.28/0.46 ( collect @ ( list @ A )
% 0.28/0.46 @ ^ [Z: list @ A] :
% 0.28/0.46 ? [X3: A,Xs2: list @ A] :
% 0.28/0.46 ( ( Z
% 0.28/0.46 = ( cons @ A @ X3 @ Xs2 ) )
% 0.28/0.46 & ( member @ A @ X3 @ A7 )
% 0.28/0.46 & ( member @ ( list @ A ) @ Xs2 @ XS ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % set_Cons_def
% 0.28/0.46 thf(fact_226_neq__if__length__neq,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Ys2: list @ A] :
% 0.28/0.46 ( ( ( size_size @ ( list @ A ) @ Xs )
% 0.28/0.46 != ( size_size @ ( list @ A ) @ Ys2 ) )
% 0.28/0.46 => ( Xs != Ys2 ) ) ).
% 0.28/0.46
% 0.28/0.46 % neq_if_length_neq
% 0.28/0.46 thf(fact_227_Ex__list__of__length,axiom,
% 0.28/0.46 ! [A: $tType,N: nat] :
% 0.28/0.46 ? [Xs3: list @ A] :
% 0.28/0.46 ( ( size_size @ ( list @ A ) @ Xs3 )
% 0.28/0.46 = N ) ).
% 0.28/0.46
% 0.28/0.46 % Ex_list_of_length
% 0.28/0.46 thf(fact_228_Cons__in__lex,axiom,
% 0.28/0.46 ! [A: $tType,X: A,Xs: list @ A,Y: A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys2 ) ) @ ( lex @ A @ R3 ) )
% 0.28/0.46 = ( ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 0.28/0.46 & ( ( size_size @ ( list @ A ) @ Xs )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Ys2 ) ) )
% 0.28/0.46 | ( ( X = Y )
% 0.28/0.46 & ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( lex @ A @ R3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Cons_in_lex
% 0.28/0.46 thf(fact_229_gen__length__def,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( gen_length @ A )
% 0.28/0.46 = ( ^ [N4: nat,Xs2: list @ A] : ( plus_plus @ nat @ N4 @ ( size_size @ ( list @ A ) @ Xs2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % gen_length_def
% 0.28/0.46 thf(fact_230_gen__length__code_I2_J,axiom,
% 0.28/0.46 ! [B: $tType,N: nat,X: B,Xs: list @ B] :
% 0.28/0.46 ( ( gen_length @ B @ N @ ( cons @ B @ X @ Xs ) )
% 0.28/0.46 = ( gen_length @ B @ ( suc @ N ) @ Xs ) ) ).
% 0.28/0.46
% 0.28/0.46 % gen_length_code(2)
% 0.28/0.46 thf(fact_231_length__code,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( size_size @ ( list @ A ) )
% 0.28/0.46 = ( gen_length @ A @ ( zero_zero @ nat ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % length_code
% 0.28/0.46 thf(fact_232_lexord__cons__cons,axiom,
% 0.28/0.46 ! [A: $tType,A2: A,X: list @ A,B2: A,Y: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ A2 @ X ) @ ( cons @ A @ B2 @ Y ) ) @ ( lexord @ A @ R3 ) )
% 0.28/0.46 = ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A2 @ B2 ) @ R3 )
% 0.28/0.46 | ( ( A2 = B2 )
% 0.28/0.46 & ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lexord @ A @ R3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lexord_cons_cons
% 0.28/0.46 thf(fact_233_lexn__length,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A ),N: nat] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( lexn @ A @ R3 @ N ) )
% 0.28/0.46 => ( ( ( size_size @ ( list @ A ) @ Xs )
% 0.28/0.46 = N )
% 0.28/0.46 & ( ( size_size @ ( list @ A ) @ Ys2 )
% 0.28/0.46 = N ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lexn_length
% 0.28/0.46 thf(fact_234_lexord__irreflexive,axiom,
% 0.28/0.46 ! [A: $tType,R3: set @ ( product_prod @ A @ A ),Xs: list @ A] :
% 0.28/0.46 ( ! [X4: A] :
% 0.28/0.46 ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ X4 ) @ R3 )
% 0.28/0.46 => ~ ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Xs ) @ ( lexord @ A @ R3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lexord_irreflexive
% 0.28/0.46 thf(fact_235_lexord__linear,axiom,
% 0.28/0.46 ! [A: $tType,R3: set @ ( product_prod @ A @ A ),X: list @ A,Y: list @ A] :
% 0.28/0.46 ( ! [A4: A,B4: A] :
% 0.28/0.46 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A4 @ B4 ) @ R3 )
% 0.28/0.46 | ( A4 = B4 )
% 0.28/0.46 | ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ B4 @ A4 ) @ R3 ) )
% 0.28/0.46 => ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lexord @ A @ R3 ) )
% 0.28/0.46 | ( X = Y )
% 0.28/0.46 | ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Y @ X ) @ ( lexord @ A @ R3 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lexord_linear
% 0.28/0.46 thf(fact_236_lexord__lex,axiom,
% 0.28/0.46 ! [A: $tType,X: list @ A,Y: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lex @ A @ R3 ) )
% 0.28/0.46 = ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lexord @ A @ R3 ) )
% 0.28/0.46 & ( ( size_size @ ( list @ A ) @ X )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Y ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lexord_lex
% 0.28/0.46 thf(fact_237_length__splice,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Ys2: list @ A] :
% 0.28/0.46 ( ( size_size @ ( list @ A ) @ ( splice @ A @ Xs @ Ys2 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_size @ ( list @ A ) @ Xs ) @ ( size_size @ ( list @ A ) @ Ys2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % length_splice
% 0.28/0.46 thf(fact_238_Shift__def,axiom,
% 0.28/0.46 ! [A: $tType] :
% 0.28/0.46 ( ( bNF_Greatest_Shift @ A )
% 0.28/0.46 = ( ^ [Kl2: set @ ( list @ A ),K2: A] :
% 0.28/0.46 ( collect @ ( list @ A )
% 0.28/0.46 @ ^ [Kl: list @ A] : ( member @ ( list @ A ) @ ( cons @ A @ K2 @ Kl ) @ Kl2 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Shift_def
% 0.28/0.46 thf(fact_239_ShiftD,axiom,
% 0.28/0.46 ! [A: $tType,Kl3: list @ A,Kl4: set @ ( list @ A ),K: A] :
% 0.28/0.46 ( ( member @ ( list @ A ) @ Kl3 @ ( bNF_Greatest_Shift @ A @ Kl4 @ K ) )
% 0.28/0.46 => ( member @ ( list @ A ) @ ( cons @ A @ K @ Kl3 ) @ Kl4 ) ) ).
% 0.28/0.46
% 0.28/0.46 % ShiftD
% 0.28/0.46 thf(fact_240_Succ__Shift,axiom,
% 0.28/0.46 ! [A: $tType,Kl4: set @ ( list @ A ),K: A,Kl3: list @ A] :
% 0.28/0.46 ( ( bNF_Greatest_Succ @ A @ ( bNF_Greatest_Shift @ A @ Kl4 @ K ) @ Kl3 )
% 0.28/0.46 = ( bNF_Greatest_Succ @ A @ Kl4 @ ( cons @ A @ K @ Kl3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Succ_Shift
% 0.28/0.46 thf(fact_241_Cons__listrel1__Cons,axiom,
% 0.28/0.46 ! [A: $tType,X: A,Xs: list @ A,Y: A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys2 ) ) @ ( listrel1 @ A @ R3 ) )
% 0.28/0.46 = ( ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 0.28/0.46 & ( Xs = Ys2 ) )
% 0.28/0.46 | ( ( X = Y )
% 0.28/0.46 & ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Cons_listrel1_Cons
% 0.28/0.46 thf(fact_242_listrel1__eq__len,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( listrel1 @ A @ R3 ) )
% 0.28/0.46 => ( ( size_size @ ( list @ A ) @ Xs )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Ys2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % listrel1_eq_len
% 0.28/0.46 thf(fact_243_listrel1I1,axiom,
% 0.28/0.46 ! [A: $tType,X: A,Y: A,R3: set @ ( product_prod @ A @ A ),Xs: list @ A] :
% 0.28/0.46 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 0.28/0.46 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Xs ) ) @ ( listrel1 @ A @ R3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % listrel1I1
% 0.28/0.46 thf(fact_244_Cons__listrel1E1,axiom,
% 0.28/0.46 ! [A: $tType,X: A,Xs: list @ A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ Ys2 ) @ ( listrel1 @ A @ R3 ) )
% 0.28/0.46 => ( ! [Y3: A] :
% 0.28/0.46 ( ( Ys2
% 0.28/0.46 = ( cons @ A @ Y3 @ Xs ) )
% 0.28/0.46 => ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y3 ) @ R3 ) )
% 0.28/0.46 => ~ ! [Zs: list @ A] :
% 0.28/0.46 ( ( Ys2
% 0.28/0.46 = ( cons @ A @ X @ Zs ) )
% 0.28/0.46 => ~ ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Zs ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Cons_listrel1E1
% 0.28/0.46 thf(fact_245_Cons__listrel1E2,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Y: A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ ( cons @ A @ Y @ Ys2 ) ) @ ( listrel1 @ A @ R3 ) )
% 0.28/0.46 => ( ! [X4: A] :
% 0.28/0.46 ( ( Xs
% 0.28/0.46 = ( cons @ A @ X4 @ Ys2 ) )
% 0.28/0.46 => ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ Y ) @ R3 ) )
% 0.28/0.46 => ~ ! [Zs: list @ A] :
% 0.28/0.46 ( ( Xs
% 0.28/0.46 = ( cons @ A @ Y @ Zs ) )
% 0.28/0.46 => ~ ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Zs @ Ys2 ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % Cons_listrel1E2
% 0.28/0.46 thf(fact_246_lexord__append__left__rightI,axiom,
% 0.28/0.46 ! [A: $tType,A2: A,B2: A,R3: set @ ( product_prod @ A @ A ),U: list @ A,X: list @ A,Y: list @ A] :
% 0.28/0.46 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A2 @ B2 ) @ R3 )
% 0.28/0.46 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( append @ A @ U @ ( cons @ A @ A2 @ X ) ) @ ( append @ A @ U @ ( cons @ A @ B2 @ Y ) ) ) @ ( lexord @ A @ R3 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lexord_append_left_rightI
% 0.28/0.46 thf(fact_247_listrel1I,axiom,
% 0.28/0.46 ! [A: $tType,X: A,Y: A,R3: set @ ( product_prod @ A @ A ),Xs: list @ A,Us: list @ A,Vs: list @ A,Ys2: list @ A] :
% 0.28/0.46 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 0.28/0.46 => ( ( Xs
% 0.28/0.46 = ( append @ A @ Us @ ( cons @ A @ X @ Vs ) ) )
% 0.28/0.46 => ( ( Ys2
% 0.28/0.46 = ( append @ A @ Us @ ( cons @ A @ Y @ Vs ) ) )
% 0.28/0.46 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % listrel1I
% 0.28/0.46 thf(fact_248_append__eq__append__conv,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Ys2: list @ A,Us: list @ A,Vs: list @ A] :
% 0.28/0.46 ( ( ( ( size_size @ ( list @ A ) @ Xs )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Ys2 ) )
% 0.28/0.46 | ( ( size_size @ ( list @ A ) @ Us )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Vs ) ) )
% 0.28/0.46 => ( ( ( append @ A @ Xs @ Us )
% 0.28/0.46 = ( append @ A @ Ys2 @ Vs ) )
% 0.28/0.46 = ( ( Xs = Ys2 )
% 0.28/0.46 & ( Us = Vs ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % append_eq_append_conv
% 0.28/0.46 thf(fact_249_length__append,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Ys2: list @ A] :
% 0.28/0.46 ( ( size_size @ ( list @ A ) @ ( append @ A @ Xs @ Ys2 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_size @ ( list @ A ) @ Xs ) @ ( size_size @ ( list @ A ) @ Ys2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % length_append
% 0.28/0.46 thf(fact_250_size__list__append,axiom,
% 0.28/0.46 ! [A: $tType,F3: A > nat,Xs: list @ A,Ys2: list @ A] :
% 0.28/0.46 ( ( size_list @ A @ F3 @ ( append @ A @ Xs @ Ys2 ) )
% 0.28/0.46 = ( plus_plus @ nat @ ( size_list @ A @ F3 @ Xs ) @ ( size_list @ A @ F3 @ Ys2 ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % size_list_append
% 0.28/0.46 thf(fact_251_lexord__sufE,axiom,
% 0.28/0.46 ! [A: $tType,Xs: list @ A,Zs2: list @ A,Ys2: list @ A,Qs: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 0.28/0.46 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( append @ A @ Xs @ Zs2 ) @ ( append @ A @ Ys2 @ Qs ) ) @ ( lexord @ A @ R3 ) )
% 0.28/0.46 => ( ( Xs != Ys2 )
% 0.28/0.46 => ( ( ( size_size @ ( list @ A ) @ Xs )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Ys2 ) )
% 0.28/0.46 => ( ( ( size_size @ ( list @ A ) @ Zs2 )
% 0.28/0.46 = ( size_size @ ( list @ A ) @ Qs ) )
% 0.28/0.46 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( lexord @ A @ R3 ) ) ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lexord_sufE
% 0.28/0.46 thf(fact_252_lex__append__leftD,axiom,
% 0.28/0.46 ! [A: $tType,R3: set @ ( product_prod @ A @ A ),Xs: list @ A,Ys2: list @ A,Zs2: list @ A] :
% 0.28/0.46 ( ! [X4: A] :
% 0.28/0.46 ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ X4 ) @ R3 )
% 0.28/0.46 => ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( append @ A @ Xs @ Ys2 ) @ ( append @ A @ Xs @ Zs2 ) ) @ ( lex @ A @ R3 ) )
% 0.28/0.46 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Ys2 @ Zs2 ) @ ( lex @ A @ R3 ) ) ) ) ).
% 0.28/0.46
% 0.28/0.46 % lex_append_leftD
% 0.28/0.46
% 0.28/0.46 % Type constructors (35)
% 0.28/0.46 thf(tcon_Com_Ocom___Nat_Osize,axiom,
% 0.28/0.46 size @ com ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
% 0.28/0.46 semiri456707255roduct @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Divides_Ounique__euclidean__semiring__numeral,axiom,
% 0.28/0.46 unique1598680935umeral @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add,axiom,
% 0.28/0.46 ordere779506340up_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
% 0.28/0.46 linord219039673up_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Ocancel__comm__monoid__add,axiom,
% 0.28/0.46 cancel1352612707id_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Ocancel__semigroup__add,axiom,
% 0.28/0.46 cancel_semigroup_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Oab__semigroup__add,axiom,
% 0.28/0.46 ab_semigroup_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Ocomm__monoid__add,axiom,
% 0.28/0.46 comm_monoid_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Osemigroup__add,axiom,
% 0.28/0.46 semigroup_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Omonoid__add,axiom,
% 0.28/0.46 monoid_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Ogroup__add,axiom,
% 0.28/0.46 group_add @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Num_Oneg__numeral,axiom,
% 0.28/0.46 neg_numeral @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Int_Oint___Groups_Ozero,axiom,
% 0.28/0.46 zero @ int ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct_1,axiom,
% 0.28/0.46 semiri456707255roduct @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Divides_Ounique__euclidean__semiring__numeral_2,axiom,
% 0.28/0.46 unique1598680935umeral @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
% 0.28/0.46 canoni770627133id_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add_3,axiom,
% 0.28/0.46 ordere779506340up_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Ocancel__comm__monoid__add_4,axiom,
% 0.28/0.46 cancel1352612707id_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Ocancel__semigroup__add_5,axiom,
% 0.28/0.46 cancel_semigroup_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Oab__semigroup__add_6,axiom,
% 0.28/0.46 ab_semigroup_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Ocomm__monoid__add_7,axiom,
% 0.28/0.46 comm_monoid_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Osemigroup__add_8,axiom,
% 0.28/0.46 semigroup_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Omonoid__add_9,axiom,
% 0.28/0.46 monoid_add @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Groups_Ozero_10,axiom,
% 0.28/0.46 zero @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Nat_Onat___Nat_Osize_11,axiom,
% 0.28/0.46 size @ nat ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_AExp_Oaexp___Nat_Osize_12,axiom,
% 0.28/0.46 size @ aexp ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_BExp_Obexp___Nat_Osize_13,axiom,
% 0.28/0.46 size @ bexp ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_List_Olist___Nat_Osize_14,axiom,
% 0.28/0.46 ! [A8: $tType] : ( size @ ( list @ A8 ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_String_Ochar___Nat_Osize_15,axiom,
% 0.28/0.46 size @ char ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Sum__Type_Osum___Nat_Osize_16,axiom,
% 0.28/0.46 ! [A8: $tType,A9: $tType] : ( size @ ( sum_sum @ A8 @ A9 ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Option_Ooption___Nat_Osize_17,axiom,
% 0.28/0.46 ! [A8: $tType] : ( size @ ( option @ A8 ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Typerep_Otyperep___Nat_Osize_18,axiom,
% 0.28/0.46 size @ typerep ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Product__Type_Oprod___Nat_Osize_19,axiom,
% 0.28/0.46 ! [A8: $tType,A9: $tType] : ( size @ ( product_prod @ A8 @ A9 ) ) ).
% 0.28/0.46
% 0.28/0.46 thf(tcon_Record_Otuple__isomorphism___Nat_Osize_20,axiom,
% 0.28/0.46 ! [A8: $tType,A9: $tType,A10: $tType] : ( size @ ( tuple_isomorphism @ A8 @ A9 @ A10 ) ) ).
% 0.28/0.46
% 0.28/0.46 % Conjectures (1)
% 0.28/0.46 thf(conj_0,conjecture,
% 0.28/0.46 ? [S6: ( list @ char ) > int,S8: ( list @ char ) > int] :
% 0.28/0.46 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ( suc @ ka ) @ S6 @ S8 )
% 0.28/0.46 & ( bval @ b @ S6 )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ S6 ) @ ta )
% 0.28/0.46 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ S8 ) @ t_a ) ) ).
% 0.28/0.46
% 0.28/0.46 %------------------------------------------------------------------------------
% 0.28/0.46 ------------------------
% 2.78/1.53 ---- Embedded in THF ---
% 2.78/1.53 %%% This output was generated by embedproblem, version 1.9.5 (library version 1.9).
% 2.78/1.53 %%% Generated on Tue Feb 24 08:29:28 EST 2026
% 2.78/1.53 %%% using '$$dhol' embedding, version 1.3.0.
% 2.78/1.53 %%% Logic specification used:
% 2.78/1.53 %%% thf(spec, logic, $$dhol).
% 2.78/1.53
% 2.78/1.53 % SZS output start ListOfTHF for /export/starexec/sandbox/tmp/tmp.zzX3bhuTj3/DTF2DTF18316.p
% 2.78/1.53 thf(ty_t_Record_Otuple__isomorphism, type, tuple_isomorphism: ($tType > ($tType > ($tType > $tType)))).
% 2.78/1.53 thf(ty_t_Product__Type_Oprod, type, product_prod: ($tType > ($tType > $tType))).
% 2.78/1.53 thf(ty_t_Typerep_Otyperep, type, typerep: $tType).
% 2.78/1.53 thf(ty_t_String_Oliteral, type, literal: $tType).
% 2.78/1.53 thf(ty_t_Sum__Type_Osum, type, sum_sum: ($tType > ($tType > $tType))).
% 2.78/1.53 thf(ty_t_Option_Ooption, type, option: ($tType > $tType)).
% 2.78/1.53 thf(ty_t_String_Ochar, type, char: $tType).
% 2.78/1.53 thf(ty_t_List_Olist, type, list: ($tType > $tType)).
% 2.78/1.53 thf(ty_t_BExp_Obexp, type, bexp: $tType).
% 2.78/1.53 thf(ty_t_AExp_Oaexp, type, aexp: $tType).
% 2.78/1.53 thf(ty_t_Set_Oset, type, set: ($tType > $tType)).
% 2.78/1.53 thf(ty_t_Nat_Onat, type, nat: $tType).
% 2.78/1.53 thf(ty_t_Int_Oint, type, int: $tType).
% 2.78/1.53 thf(ty_t_Com_Ocom, type, com: $tType).
% 2.78/1.53 thf(sy_cl_HOL_Otype, type, type: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Nat_Osize, type, size: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Ozero, type, zero: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Num_Oneg__numeral, type, neg_numeral: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Ogroup__add, type, group_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Omonoid__add, type, monoid_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Osemigroup__add, type, semigroup_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Ocomm__monoid__add, type, comm_monoid_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Oab__semigroup__add, type, ab_semigroup_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Ocancel__semigroup__add, type, cancel_semigroup_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Ocancel__comm__monoid__add, type, cancel1352612707id_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Olinordered__ab__group__add, type, linord219039673up_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Oordered__ab__semigroup__add, type, ordere779506340up_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Groups_Ocanonically__ordered__monoid__add, type, canoni770627133id_add: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Divides_Ounique__euclidean__semiring__numeral, type, unique1598680935umeral: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct, type, semiri456707255roduct: (!> [A:$tType]: ($o))).
% 2.78/1.53 thf(sy_c_BExp_Obval, type, bval: (bexp > (((list @ char) > int) > $o))).
% 2.78/1.53 thf(sy_c_BNF__Greatest__Fixpoint_OShift, type, bNF_Greatest_Shift: (!> [A:$tType]: (((set @ (list @ A)) > (A > (set @ (list @ A))))))).
% 2.78/1.53 thf(sy_c_BNF__Greatest__Fixpoint_OSucc, type, bNF_Greatest_Succ: (!> [A:$tType]: (((set @ (list @ A)) > ((list @ A) > (set @ A)))))).
% 2.78/1.53 thf(sy_c_BNF__Greatest__Fixpoint_Oimage2, type, bNF_Greatest_image2: (!> [C:$tType,A:$tType,B:$tType]: (((set @ C) > ((C > A) > ((C > B) > (set @ ((product_prod @ A) @ B)))))))).
% 2.78/1.53 thf(sy_c_BNF__Greatest__Fixpoint_Oimage2p, type, bNF_Greatest_image2p: (!> [C:$tType,A:$tType,D:$tType,B:$tType]: (((C > A) > ((D > B) > ((C > (D > $o)) > (A > (B > $o)))))))).
% 2.78/1.53 thf(sy_c_BNF__Greatest__Fixpoint_OrelImage, type, bNF_Gr1317331620lImage: (!> [B:$tType,A:$tType]: (((set @ ((product_prod @ B) @ B)) > ((B > A) > (set @ ((product_prod @ A) @ A))))))).
% 2.78/1.53 thf(sy_c_BNF__Greatest__Fixpoint_OrelInvImage, type, bNF_Gr2107612801vImage: (!> [A:$tType,B:$tType]: (((set @ A) > ((set @ ((product_prod @ B) @ B)) > ((A > B) > (set @ ((product_prod @ A) @ A)))))))).
% 2.78/1.53 thf(sy_c_BNF__Greatest__Fixpoint_Oshift, type, bNF_Greatest_shift: (!> [A:$tType,B:$tType]: ((((list @ A) > B) > (A > ((list @ A) > B)))))).
% 2.78/1.53 thf(sy_c_Basic__BNF__LFPs_Osum_Osize__sum, type, basic_BNF_size_sum: (!> [A:$tType,B:$tType]: (((A > nat) > ((B > nat) > (((sum_sum @ A) @ B) > nat)))))).
% 2.78/1.53 thf(sy_c_Big__Step_Obig__step, type, big_big_step: (((product_prod @ com) @ ((list @ char) > int)) > (((list @ char) > int) > $o))).
% 2.78/1.53 thf(sy_c_Com_Ocom_OAssign, type, assign: ((list @ char) > (aexp > com))).
% 2.78/1.53 thf(sy_c_Com_Ocom_OIf, type, if: (bexp > (com > (com > com)))).
% 2.78/1.53 thf(sy_c_Com_Ocom_OSKIP, type, skip: com).
% 2.78/1.53 thf(sy_c_Com_Ocom_OSeq, type, seq: (com > (com > com))).
% 2.78/1.53 thf(sy_c_Com_Ocom_OWhile, type, while: (bexp > (com > com))).
% 2.78/1.53 thf(sy_c_Com_Ocom_Osize__com, type, size_com: (com > nat)).
% 2.78/1.53 thf(sy_c_Divides_Ounique__euclidean__semiring__numeral__class_Odivides__aux, type, unique455577585es_aux: (!> [A:$tType]: ((((product_prod @ A) @ A) > $o)))).
% 2.78/1.53 thf(sy_c_Groups_Oplus__class_Oplus, type, plus_plus: (!> [A:$tType]: ((A > (A > A))))).
% 2.78/1.53 thf(sy_c_Groups_Ozero__class_Ozero, type, zero_zero: (!> [A:$tType]: (A))).
% 2.78/1.53 thf(sy_c_List_Oappend, type, append: (!> [A:$tType]: (((list @ A) > ((list @ A) > (list @ A)))))).
% 2.78/1.53 thf(sy_c_List_Ogen__length, type, gen_length: (!> [A:$tType]: ((nat > ((list @ A) > nat))))).
% 2.78/1.53 thf(sy_c_List_Olex, type, lex: (!> [A:$tType]: (((set @ ((product_prod @ A) @ A)) > (set @ ((product_prod @ (list @ A)) @ (list @ A))))))).
% 2.78/1.53 thf(sy_c_List_Olexn, type, lexn: (!> [A:$tType]: (((set @ ((product_prod @ A) @ A)) > (nat > (set @ ((product_prod @ (list @ A)) @ (list @ A)))))))).
% 2.78/1.53 thf(sy_c_List_Olexord, type, lexord: (!> [A:$tType]: (((set @ ((product_prod @ A) @ A)) > (set @ ((product_prod @ (list @ A)) @ (list @ A))))))).
% 2.78/1.53 thf(sy_c_List_Olist_OCons, type, cons: (!> [A:$tType]: ((A > ((list @ A) > (list @ A)))))).
% 2.78/1.53 thf(sy_c_List_Olist_Osize__list, type, size_list: (!> [A:$tType]: (((A > nat) > ((list @ A) > nat))))).
% 2.78/1.53 thf(sy_c_List_Olistrel1, type, listrel1: (!> [A:$tType]: (((set @ ((product_prod @ A) @ A)) > (set @ ((product_prod @ (list @ A)) @ (list @ A))))))).
% 2.78/1.53 thf(sy_c_List_Oset__Cons, type, set_Cons: (!> [A:$tType]: (((set @ A) > ((set @ (list @ A)) > (set @ (list @ A))))))).
% 2.78/1.53 thf(sy_c_List_Osplice, type, splice: (!> [A:$tType]: (((list @ A) > ((list @ A) > (list @ A)))))).
% 2.78/1.53 thf(sy_c_Nat_OSuc, type, suc: (nat > nat)).
% 2.78/1.53 thf(sy_c_Nat_Osize__class_Osize, type, size_size: (!> [A:$tType]: ((A > nat)))).
% 2.78/1.53 thf(sy_c_Option_Ooption_ONone, type, none: (!> [A:$tType]: ((option @ A)))).
% 2.78/1.53 thf(sy_c_Option_Ooption_OSome, type, some: (!> [A:$tType]: ((A > (option @ A))))).
% 2.78/1.53 thf(sy_c_Option_Ooption_Ocase__option, type, case_option: (!> [B:$tType,A:$tType]: ((B > ((A > B) > ((option @ A) > B)))))).
% 2.78/1.53 thf(sy_c_Option_Ooption_Osize__option, type, size_option: (!> [A:$tType]: (((A > nat) > ((option @ A) > nat))))).
% 2.78/1.53 thf(sy_c_Product__Type_OPair, type, product_Pair: (!> [A:$tType,B:$tType]: ((A > (B > ((product_prod @ A) @ B)))))).
% 2.78/1.53 thf(sy_c_Product__Type_Ointernal__case__prod, type, produc2004651681e_prod: (!> [A:$tType,B:$tType,C:$tType]: (((A > (B > C)) > (((product_prod @ A) @ B) > C))))).
% 2.78/1.53 thf(sy_c_Product__Type_Oold_Oprod_Orec__prod, type, product_rec_prod: (!> [A:$tType,B:$tType,T:$tType]: (((A > (B > T)) > (((product_prod @ A) @ B) > T))))).
% 2.78/1.53 thf(sy_c_Record_Otuple__isomorphism_OTuple__Isomorphism, type, tuple_742722141rphism: (!> [A:$tType,B:$tType,C:$tType]: (((A > ((product_prod @ B) @ C)) > ((((product_prod @ B) @ C) > A) > (((tuple_isomorphism @ A) @ B) @ C)))))).
% 2.78/1.53 thf(sy_c_Record_Otuple__isomorphism_Osize__tuple__isomorphism, type, tuple_1907371454rphism: (!> [A:$tType,B:$tType,C:$tType]: (((A > nat) > ((B > nat) > ((C > nat) > ((((tuple_isomorphism @ A) @ B) @ C) > nat))))))).
% 2.78/1.53 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oflip, type, relati1716060877e_flip: ((((list @ char) > int) > (((list @ char) > int) > $o)) > (((list @ char) > int) > (((list @ char) > int) > $o)))).
% 2.78/1.53 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oget__back, type, relati1010904253t_back: (!> [A:$tType]: (((((list @ char) > int) > (A > $o)) > (bexp > (com > (nat > (((list @ char) > int) > (A > $o))))))))).
% 2.78/1.53 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__hoare, type, relati1493963588_hoare: ((((list @ char) > int) > (((list @ char) > int) > $o)) > (com > (com > ((((list @ char) > int) > (((list @ char) > int) > $o)) > $o))))).
% 2.78/1.53 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__valid, type, relati167478067_valid: ((((list @ char) > int) > (((list @ char) > int) > $o)) > (com > (com > ((((list @ char) > int) > (((list @ char) > int) > $o)) > $o))))).
% 2.78/1.53 thf(sy_c_Set_OCollect, type, collect: (!> [A:$tType]: (((A > $o) > (set @ A))))).
% 2.78/1.53 thf(sy_c_Sum__Type_OInl, type, sum_Inl: (!> [A:$tType,B:$tType]: ((A > ((sum_sum @ A) @ B))))).
% 2.78/1.53 thf(sy_c_Sum__Type_OInr, type, sum_Inr: (!> [B:$tType,A:$tType]: ((B > ((sum_sum @ A) @ B))))).
% 2.78/1.53 thf(sy_c_Typerep_Otyperep_OTyperep, type, typerep2: (literal > ((list @ typerep) > typerep))).
% 2.78/1.53 thf(sy_c_Typerep_Otyperep_Osize__typerep, type, size_typerep: (typerep > nat)).
% 2.78/1.53 thf(sy_c_member, type, member: (!> [A:$tType]: ((A > ((set @ A) > $o))))).
% 2.78/1.53 thf(sy_v_P, type, p: (((list @ char) > int) > (((list @ char) > int) > $o))).
% 2.78/1.53 thf(sy_v_Q, type, q: (((list @ char) > int) > (((list @ char) > int) > $o))).
% 2.78/1.53 thf(sy_v_b, type, b: bexp).
% 2.78/1.53 thf(sy_v_c, type, c: com).
% 2.78/1.53 thf(sy_v_c_H, type, c2: com).
% 2.78/1.53 thf(sy_v_k, type, k: nat).
% 2.78/1.53 thf(sy_v_ka____, type, ka: nat).
% 2.78/1.53 thf(sy_v_s_H____, type, s: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_s_Ha____, type, s_a: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_s____, type, s2: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_sa____, type, sa: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_t_H____, type, t: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_t_Ha____, type, t_a: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_t____, type, t2: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_ta____, type, ta: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_u____, type, u: ((list @ char) > int)).
% 2.78/1.53 thf(sy_v_ua____, type, ua: ((list @ char) > int)).
% 2.78/1.53 thf(fact_0_Suc_Oprems_I6_J, axiom, ((bval @ b) @ sa)).
% 2.78/1.53 thf(fact_1__092_060open_062bval_Ab_As_____092_060close_062, axiom, ((bval @ b) @ s2)).
% 2.78/1.53 thf(fact_2_Suc_Oprems_I3_J, axiom, ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c) @ sa)) @ ta)).
% 2.78/1.53 thf(fact_3_Suc_Oprems_I4_J, axiom, ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c2) @ s_a)) @ t_a)).
% 2.78/1.53 thf(fact_4_Suc_Oprems_I7_J, axiom, (((((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ (suc @ ka)) @ sa) @ s_a)).
% 2.78/1.53 thf(fact_5__092_060open_062_Ic_H_M_As_H_____J_A_092_060Rightarrow_062_At_H_____092_060close_062, axiom, ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c2) @ s)) @ t)).
% 2.78/1.53 thf(fact_6__092_060open_062_Ic_M_As_____J_A_092_060Rightarrow_062_At_____092_060close_062, axiom, ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c) @ s2)) @ t2)).
% 2.78/1.53 thf(fact_7_Suc_Oprems_I5_J, axiom, ((q @ ua) @ t_a)).
% 2.78/1.53 thf(fact_8__092_060open_062get__back_AP_Ab_Ac_Ak_As_____As_H_____092_060close_062, axiom, (((((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ k) @ s2) @ s)).
% 2.78/1.53 thf(fact_9_Suc_Oprems_I2_J, axiom, ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ b) @ c)) @ ta)) @ ua)).
% 2.78/1.53 thf(fact_10__092_060open_062_IWHILE_Ab_ADO_Ac_M_At_____J_A_092_060Rightarrow_062_Au_____092_060close_062, axiom, ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ b) @ c)) @ t2)) @ u)).
% 2.78/1.53 thf(fact_11_Suc_Oprems_I1_J, axiom, ((((relati167478067_valid @ (((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ (suc @ ka))) @ ((while @ b) @ c)) @ c2) @ q)).
% 2.78/1.53 thf(fact_12_nat_Oinject, axiom, (! [X2:nat,Y2:nat]: ((((suc @ X2) = (suc @ Y2)) = (X2 = Y2))))).
% 2.78/1.53 thf(fact_13_old_Onat_Oinject, axiom, (! [Nat:nat,Nat2:nat]: ((((suc @ Nat) = (suc @ Nat2)) = (Nat = Nat2))))).
% 2.78/1.53 thf(fact_14_prod_Oinject, axiom, (! [A:$tType,B:$tType,X1:A,X2:B,Y1:A,Y2:B]: (((((((product_Pair @ A) @ B) @ X1) @ X2) = ((((product_Pair @ A) @ B) @ Y1) @ Y2)) = ((X1 = Y1) & (X2 = Y2)))))).
% 2.78/1.53 thf(fact_15_old_Oprod_Oinject, axiom, (! [A:$tType,B:$tType,A2:A,B2:B,A3:A,B3:B]: (((((((product_Pair @ A) @ B) @ A2) @ B2) = ((((product_Pair @ A) @ B) @ A3) @ B3)) = ((A2 = A3) & (B2 = B3)))))).
% 2.78/1.53 thf(fact_16_Suc_OIH, axiom, (! [T2:((list @ char) > int),U:((list @ char) > int),S:((list @ char) > int),S2:((list @ char) > int),T3:((list @ char) > int)]: ((((((relati167478067_valid @ (((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ ka)) @ ((while @ b) @ c)) @ c2) @ q) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ b) @ c)) @ T2)) @ U) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c) @ S)) @ T2) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c2) @ S2)) @ T3) => (((q @ U) @ T3) => (((bval @ b) @ S) => ((((((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ ka) @ S) @ S2) => (? [S3:((list @ char) > int),S4:((list @ char) > int)]: (((((((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ ka) @ S3) @ S4) & (((bval @ b) @ S3) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c) @ S3)) @ T2) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c2) @ S4)) @ T3)))))))))))))))).
% 2.78/1.53 thf(fact_17_sim__sym, axiom, (! [C2:com,C3:com]: (((! [S5:((list @ char) > int),T4:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S5)) @ T4) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S5)) @ T4)))) = (! [S5:((list @ char) > int),T4:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S5)) @ T4) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S5)) @ T4)))))))).
% 2.78/1.53 thf(fact_18_sim__refl, axiom, (! [C2:com,S6:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S6)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S6)) @ T5))))).
% 2.78/1.53 thf(fact_19__092_060open_062Q_Au_____At_H_____092_060close_062, axiom, ((q @ u) @ t)).
% 2.78/1.53 thf(fact_20_disj__ir__valid, axiom, (! [P_1:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q_1:(((list @ char) > int) > (((list @ char) > int) > $o)),P_2:(((list @ char) > int) > (((list @ char) > int) > $o)),Q_2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P_1) @ C2) @ C3) @ Q_1) => (((((relati167478067_valid @ P_2) @ C2) @ C3) @ Q_2) => ((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P_1 @ S5) @ S7) | ((P_2 @ S5) @ S7))))) @ C2) @ C3) @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: ((((Q_1 @ T4) @ T6) | ((Q_2 @ T4) @ T6)))))))))).
% 2.78/1.53 thf(fact_21__092_060open_062ir__valid_A_Iget__back_AP_Ab_Ac_Ak_J_A_IWHILE_Ab_ADO_Ac_J_Ac_H_AQ_092_060close_062, axiom, ((((relati167478067_valid @ (((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ k)) @ ((while @ b) @ c)) @ c2) @ q)).
% 2.78/1.53 thf(fact_22_conseq__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P2:(((list @ char) > int) > (((list @ char) > int) > $o)),Q2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((P @ S3) @ S4) => ((P2 @ S3) @ S4)))) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((Q2 @ S3) @ S4) => ((Q @ S3) @ S4)))) => ((((relati167478067_valid @ P2) @ C2) @ C3) @ Q2))))))).
% 2.78/1.53 thf(fact_23_ir__valid__get__back, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C2:com,K:nat,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ (((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ (suc @ K))) @ ((while @ B2) @ C2)) @ C3) @ Q) => ((((relati167478067_valid @ (((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ K)) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_24_sim__while__cong__aux, axiom, (! [B2:bexp,C2:com,S:((list @ char) > int),T2:((list @ char) > int),C3:com]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S)) @ T2) => ((! [S3:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S3)) @ T7) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T7)))) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C3)) @ S)) @ T2)))))).
% 2.78/1.53 thf(fact_25_sim__while__cong, axiom, (! [C2:com,C3:com,B2:bexp]: (((! [S3:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S3)) @ T7) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T7)))) => (! [S6:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S6)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C3)) @ S6)) @ T5)))))))).
% 2.78/1.53 thf(fact_26_ir__valid__def, axiom, (relati167478067_valid = (^ [P3:(((list @ char) > int) > (((list @ char) > int) > $o)),C4:com,C5:com,Q3:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((! [T4:((list @ char) > int),T6:((list @ char) > int)]: ((((Q3 @ T4) @ T6) => (? [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P3 @ S5) @ S7) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C4) @ S5)) @ T4) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C5) @ S7)) @ T6)))))))))))).
% 2.78/1.53 thf(fact_27_WhileFalse, axiom, (! [B2:bexp,S:((list @ char) > int),C2:com]: (((~ (((bval @ B2) @ S))) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S)) @ S))))).
% 2.78/1.53 thf(fact_28_WhileTrue, axiom, (! [B2:bexp,S_1:((list @ char) > int),C2:com,S_2:((list @ char) > int),S_3:((list @ char) > int)]: ((((bval @ B2) @ S_1) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S_1)) @ S_2) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S_2)) @ S_3) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S_1)) @ S_3))))))).
% 2.78/1.53 thf(fact_29_WhileE, axiom, (! [B2:bexp,C2:com,S:((list @ char) > int),T2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S)) @ T2) => (((T2 = S) => ((bval @ B2) @ S)) => (~ ((((bval @ B2) @ S) => (! [S_22:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S)) @ S_22) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S_22)) @ T2)))))))))))))).
% 2.78/1.53 thf(fact_30_old_Oprod_Oinducts, axiom, (! [B:$tType,A:$tType,P:(((product_prod @ A) @ B) > $o),Prod:((product_prod @ A) @ B)]: (((! [A4:A,B4:B]: ((P @ ((((product_Pair @ A) @ B) @ A4) @ B4)))) => (P @ Prod))))).
% 2.78/1.53 thf(fact_31_old_Oprod_Oexhaust, axiom, (! [A:$tType,B:$tType,Y:((product_prod @ A) @ B)]: ((~ ((! [A4:A,B4:B]: ((Y != ((((product_Pair @ A) @ B) @ A4) @ B4))))))))).
% 2.78/1.53 thf(fact_32_prod__induct7, axiom, (! [G:$tType,F:$tType,E:$tType,D:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G)))))) > $o),X:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G))))))]: (((! [A4:A,B4:B,C6:C,D2:D,E2:E,F2:F,G2:G]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G)))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G))))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G)))) @ C6) @ ((((product_Pair @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G))) @ D2) @ ((((product_Pair @ E) @ ((product_prod @ F) @ G)) @ E2) @ ((((product_Pair @ F) @ G) @ F2) @ G2))))))))) => (P @ X))))).
% 2.78/1.53 thf(fact_33_prod__induct6, axiom, (! [F:$tType,E:$tType,D:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F))))) > $o),X:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F)))))]: (((! [A4:A,B4:B,C6:C,D2:D,E2:E,F2:F]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F)))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F))) @ C6) @ ((((product_Pair @ D) @ ((product_prod @ E) @ F)) @ D2) @ ((((product_Pair @ E) @ F) @ E2) @ F2)))))))) => (P @ X))))).
% 2.78/1.53 thf(fact_34_prod__induct5, axiom, (! [E:$tType,D:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ E)))) > $o),X:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ E))))]: (((! [A4:A,B4:B,C6:C,D2:D,E2:E]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ E)))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ E))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D) @ E)) @ C6) @ ((((product_Pair @ D) @ E) @ D2) @ E2))))))) => (P @ X))))).
% 2.78/1.53 thf(fact_35_prod__induct4, axiom, (! [D:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D))) > $o),X:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D)))]: (((! [A4:A,B4:B,C6:C,D2:D]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ D)) @ B4) @ ((((product_Pair @ C) @ D) @ C6) @ D2)))))) => (P @ X))))).
% 2.78/1.53 thf(fact_36_prod__induct3, axiom, (! [C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ C)) > $o),X:((product_prod @ A) @ ((product_prod @ B) @ C))]: (((! [A4:A,B4:B,C6:C]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ C)) @ A4) @ ((((product_Pair @ B) @ C) @ B4) @ C6))))) => (P @ X))))).
% 2.78/1.53 thf(fact_37_prod__cases7, axiom, (! [A:$tType,B:$tType,C:$tType,D:$tType,E:$tType,F:$tType,G:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G))))))]: ((~ ((! [A4:A,B4:B,C6:C,D2:D,E2:E,F2:F,G2:G]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G)))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G))))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G)))) @ C6) @ ((((product_Pair @ D) @ ((product_prod @ E) @ ((product_prod @ F) @ G))) @ D2) @ ((((product_Pair @ E) @ ((product_prod @ F) @ G)) @ E2) @ ((((product_Pair @ F) @ G) @ F2) @ G2)))))))))))))).
% 2.78/1.53 thf(fact_38_prod__cases6, axiom, (! [A:$tType,B:$tType,C:$tType,D:$tType,E:$tType,F:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F)))))]: ((~ ((! [A4:A,B4:B,C6:C,D2:D,E2:E,F2:F]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F)))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D) @ ((product_prod @ E) @ F))) @ C6) @ ((((product_Pair @ D) @ ((product_prod @ E) @ F)) @ D2) @ ((((product_Pair @ E) @ F) @ E2) @ F2))))))))))))).
% 2.78/1.53 thf(fact_39_prod__cases5, axiom, (! [A:$tType,B:$tType,C:$tType,D:$tType,E:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ E))))]: ((~ ((! [A4:A,B4:B,C6:C,D2:D,E2:E]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ E)))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D) @ E))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D) @ E)) @ C6) @ ((((product_Pair @ D) @ E) @ D2) @ E2)))))))))))).
% 2.78/1.53 thf(fact_40_prod__cases4, axiom, (! [A:$tType,B:$tType,C:$tType,D:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D)))]: ((~ ((! [A4:A,B4:B,C6:C,D2:D]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ D)) @ B4) @ ((((product_Pair @ C) @ D) @ C6) @ D2))))))))))).
% 2.78/1.53 thf(fact_41_prod__cases3, axiom, (! [A:$tType,B:$tType,C:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ C))]: ((~ ((! [A4:A,B4:B,C6:C]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ C)) @ A4) @ ((((product_Pair @ B) @ C) @ B4) @ C6)))))))))).
% 2.78/1.53 thf(fact_42_Pair__inject, axiom, (! [A:$tType,B:$tType,A2:A,B2:B,A3:A,B3:B]: (((((((product_Pair @ A) @ B) @ A2) @ B2) = ((((product_Pair @ A) @ B) @ A3) @ B3)) => (~ (((A2 = A3) => (B2 != B3)))))))).
% 2.78/1.53 thf(fact_43_prod__cases, axiom, (! [B:$tType,A:$tType,P:(((product_prod @ A) @ B) > $o),P4:((product_prod @ A) @ B)]: (((! [A4:A,B4:B]: ((P @ ((((product_Pair @ A) @ B) @ A4) @ B4)))) => (P @ P4))))).
% 2.78/1.53 thf(fact_44_mem__Collect__eq, axiom, (! [A:$tType,A2:A,P:(A > $o)]: (((((member @ A) @ A2) @ ((collect @ A) @ P)) = (P @ A2))))).
% 2.78/1.53 thf(fact_45_Collect__mem__eq, axiom, (! [A:$tType,A5:(set @ A)]: ((((collect @ A) @ (^ [X3:A]: ((((member @ A) @ X3) @ A5)))) = A5)))).
% 2.78/1.53 thf(fact_46_Collect__cong, axiom, (! [A:$tType,P:(A > $o),Q:(A > $o)]: (((! [X4:A]: (((P @ X4) = (Q @ X4)))) => (((collect @ A) @ P) = ((collect @ A) @ Q)))))).
% 2.78/1.53 thf(fact_47_ext, axiom, (! [B:$tType,A:$tType,F3:(A > B),G3:(A > B)]: (((! [X4:A]: (((F3 @ X4) = (G3 @ X4)))) => (F3 = G3))))).
% 2.78/1.53 thf(fact_48_surj__pair, axiom, (! [A:$tType,B:$tType,P4:((product_prod @ A) @ B)]: ((? [X4:A,Y3:B]: ((P4 = ((((product_Pair @ A) @ B) @ X4) @ Y3))))))).
% 2.78/1.53 thf(fact_49_n__not__Suc__n, axiom, (! [N:nat]: ((N != (suc @ N))))).
% 2.78/1.53 thf(fact_50_Suc__inject, axiom, (! [X:nat,Y:nat]: ((((suc @ X) = (suc @ Y)) => (X = Y))))).
% 2.78/1.53 thf(fact_51_big__step__determ, axiom, (! [C2:com,S:((list @ char) > int),T2:((list @ char) > int),U:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S)) @ T2) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S)) @ U) => (U = T2)))))).
% 2.78/1.53 thf(fact_52_sim__trans, axiom, (! [C2:com,C3:com,C7:com]: (((! [S3:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S3)) @ T7) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T7)))) => ((! [S3:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T7) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C7) @ S3)) @ T7)))) => (! [S6:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S6)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C7) @ S6)) @ T5))))))))).
% 2.78/1.53 thf(fact_53_old_Oprod_Orec, axiom, (! [A:$tType,T:$tType,B:$tType,F1:(A > (B > T)),A2:A,B2:B]: (((((((product_rec_prod @ A) @ B) @ T) @ F1) @ ((((product_Pair @ A) @ B) @ A2) @ B2)) = ((F1 @ A2) @ B2))))).
% 2.78/1.53 thf(fact_54_com_Oinject_I4_J, axiom, (! [X51:bexp,X52:com,Y51:bexp,Y52:com]: (((((while @ X51) @ X52) = ((while @ Y51) @ Y52)) = ((X51 = Y51) & (X52 = Y52)))))).
% 2.78/1.53 thf(fact_55_While__False__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com]: ((((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (~ (((bval @ B2) @ S5))))))) @ skip) @ C3) @ Q) => ((((relati167478067_valid @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_56_While__True__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & ((bval @ B2) @ S5))))) @ ((seq @ C2) @ ((while @ B2) @ C2))) @ C3) @ Q) => ((((relati167478067_valid @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_57_get__back_Osimps_I2_J, axiom, (! [A:$tType,P:(((list @ char) > int) > (A > $o)),B2:bexp,C2:com,N:nat]: (((((((relati1010904253t_back @ A) @ P) @ B2) @ C2) @ (suc @ N)) = (^ [T4:((list @ char) > int),T6:A]: ((? [S5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S5)) @ T4) & (((bval @ B2) @ S5) & (((((((relati1010904253t_back @ A) @ P) @ B2) @ C2) @ N) @ S5) @ T6))))))))))).
% 2.78/1.53 thf(fact_58_Skip__ir__valid, axiom, (! [Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com]: (((! [T7:((list @ char) > int),T8:((list @ char) > int)]: ((((Q @ T7) @ T8) => (? [S8:((list @ char) > int)]: ((((P @ T7) @ S8) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S8)) @ T8))))))) => ((((relati167478067_valid @ P) @ skip) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_59_While__backwards__frontier__ir__valid_H, axiom, (! [P:(nat > (((list @ char) > int) > (((list @ char) > int) > $o))),K:nat,B2:bexp,C2:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com,T2:((list @ char) > int),T3:((list @ char) > int)]: (((! [N2:nat,T7:((list @ char) > int),T8:((list @ char) > int)]: (((((P @ (((plus_plus @ nat) @ K) @ (suc @ N2))) @ T7) @ T8) => (? [S6:((list @ char) > int)]: (((((P @ (((plus_plus @ nat) @ K) @ N2)) @ S6) @ T8) & (((bval @ B2) @ S6) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S6)) @ T7)))))))) => ((! [T7:((list @ char) > int),T8:((list @ char) > int)]: ((((Q @ T7) @ T8) => (? [S6:((list @ char) > int),S8:((list @ char) > int)]: (((? [N3:nat]: ((((P @ (((plus_plus @ nat) @ K) @ N3)) @ S6) @ S8))) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S6)) @ T7) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S8)) @ T8)))))))) => (((Q @ T2) @ T3) => (? [S3:((list @ char) > int),S4:((list @ char) > int)]: (((((P @ K) @ S3) @ S4) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S3)) @ T2) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S4)) @ T3))))))))))).
% 2.78/1.53 thf(fact_60_sym__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com,C2:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ (relati1716060877e_flip @ P)) @ C3) @ C2) @ (relati1716060877e_flip @ Q)) => ((((relati167478067_valid @ P) @ C2) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_61_pred__equals__eq2, axiom, (! [B:$tType,A:$tType,R:(set @ ((product_prod @ A) @ B)),S9:(set @ ((product_prod @ A) @ B))]: ((((^ [X3:A,Y4:B]: ((((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ X3) @ Y4)) @ R))) = (^ [X3:A,Y4:B]: ((((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ X3) @ Y4)) @ S9)))) = (R = S9))))).
% 2.78/1.53 thf(fact_62_internal__case__prod__conv, axiom, (! [B:$tType,A:$tType,C:$tType,C2:(B > (C > A)),A2:B,B2:C]: (((((((produc2004651681e_prod @ B) @ C) @ A) @ C2) @ ((((product_Pair @ B) @ C) @ A2) @ B2)) = ((C2 @ A2) @ B2))))).
% 2.78/1.53 thf(fact_63_com_Oinject_I2_J, axiom, (! [X31:com,X32:com,Y31:com,Y32:com]: (((((seq @ X31) @ X32) = ((seq @ Y31) @ Y32)) = ((X31 = Y31) & (X32 = Y32)))))).
% 2.78/1.53 thf(fact_64_add__Suc__right, axiom, (! [M:nat,N:nat]: (((((plus_plus @ nat) @ M) @ (suc @ N)) = (suc @ (((plus_plus @ nat) @ M) @ N)))))).
% 2.78/1.53 thf(fact_65_Seq__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D3:com,D4:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => (((((relati167478067_valid @ Q) @ D3) @ D4) @ R) => ((((relati167478067_valid @ P) @ ((seq @ C2) @ D3)) @ ((seq @ C3) @ D4)) @ R)))))).
% 2.78/1.53 thf(fact_66_meh__simp, axiom, (! [S2:((list @ char) > int),T3:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ skip) @ S2)) @ T3) = (S2 = T3))))).
% 2.78/1.53 thf(fact_67_Seq2__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D3:com,C3:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ skip) @ Q) => (((((relati167478067_valid @ Q) @ D3) @ C3) @ R) => ((((relati167478067_valid @ P) @ ((seq @ C2) @ D3)) @ C3) @ R)))))).
% 2.78/1.53 thf(fact_68_Seq1__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D3:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => (((((relati167478067_valid @ Q) @ D3) @ skip) @ R) => ((((relati167478067_valid @ P) @ ((seq @ C2) @ D3)) @ C3) @ R)))))).
% 2.78/1.53 thf(fact_69_com_Odistinct_I3_J, axiom, (! [X31:com,X32:com]: ((skip != ((seq @ X31) @ X32))))).
% 2.78/1.53 thf(fact_70_com_Odistinct_I17_J, axiom, (! [X31:com,X32:com,X51:bexp,X52:com]: ((((seq @ X31) @ X32) != ((while @ X51) @ X52))))).
% 2.78/1.53 thf(fact_71_com_Odistinct_I7_J, axiom, (! [X51:bexp,X52:com]: ((skip != ((while @ X51) @ X52))))).
% 2.78/1.53 thf(fact_72_add__Suc__shift, axiom, (! [M:nat,N:nat]: (((((plus_plus @ nat) @ (suc @ M)) @ N) = (((plus_plus @ nat) @ M) @ (suc @ N)))))).
% 2.78/1.53 thf(fact_73_nat__arith_Osuc1, axiom, (! [A5:nat,K:nat,A2:nat]: (((A5 = (((plus_plus @ nat) @ K) @ A2)) => ((suc @ A5) = (((plus_plus @ nat) @ K) @ (suc @ A2))))))).
% 2.78/1.53 thf(fact_74_add__Suc, axiom, (! [M:nat,N:nat]: (((((plus_plus @ nat) @ (suc @ M)) @ N) = (suc @ (((plus_plus @ nat) @ M) @ N)))))).
% 2.78/1.53 thf(fact_75_ir__valid__Seq1_H, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C1:com,C22:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ ((seq @ C1) @ C22)) @ C3) @ Q) => ((((relati167478067_valid @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: ((? [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S5)) @ T4) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S7)) @ T6) & (? [U2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ T4)) @ U2) & ((Q @ U2) @ T6)))))))))))) @ C22) @ skip) @ Q))))).
% 2.78/1.53 thf(fact_76_flip__def, axiom, (relati1716060877e_flip = (^ [P3:(((list @ char) > int) > (((list @ char) > int) > $o)),S5:((list @ char) > int),S7:((list @ char) > int)]: (((P3 @ S7) @ S5))))).
% 2.78/1.53 thf(fact_77_ir__valid__Seq1, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C1:com,C22:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ ((seq @ C1) @ C22)) @ C3) @ Q) => ((((relati167478067_valid @ P) @ C1) @ C3) @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: ((? [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S5)) @ T4) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S7)) @ T6) & (? [U2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ T4)) @ U2) & ((Q @ U2) @ T6)))))))))))))))).
% 2.78/1.53 thf(fact_78_SeqE, axiom, (! [C1:com,C22:com,S1:((list @ char) > int),S32:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((seq @ C1) @ C22)) @ S1)) @ S32) => (~ ((! [S_22:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S1)) @ S_22) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ S_22)) @ S32)))))))))))).
% 2.78/1.53 thf(fact_79_Seq__assoc, axiom, (! [C1:com,C22:com,C32:com,S:((list @ char) > int),S2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((seq @ ((seq @ C1) @ C22)) @ C32)) @ S)) @ S2) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((seq @ C1) @ ((seq @ C22) @ C32))) @ S)) @ S2))))).
% 2.78/1.53 thf(fact_80_Seq, axiom, (! [C_1:com,S_1:((list @ char) > int),S_2:((list @ char) > int),C_2:com,S_3:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C_1) @ S_1)) @ S_2) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C_2) @ S_2)) @ S_3) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((seq @ C_1) @ C_2)) @ S_1)) @ S_3)))))).
% 2.78/1.53 thf(fact_81_SkipE, axiom, (! [S:((list @ char) > int),T2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ skip) @ S)) @ T2) => (T2 = S))))).
% 2.78/1.53 thf(fact_82_Skip, axiom, (! [S:((list @ char) > int)]: (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ skip) @ S)) @ S)))).
% 2.78/1.53 thf(fact_83_ir__valid__track__history, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),S:((list @ char) > int),S2:((list @ char) > int)]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => ((((relati167478067_valid @ P) @ C2) @ C3) @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: ((((Q @ S) @ S2) & (? [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S5)) @ T4) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S7)) @ T6))))))))))))).
% 2.78/1.53 thf(fact_84_ir__valid__While1, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C2:com,K:nat,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ (((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ K)) @ ((while @ B2) @ C2)) @ C3) @ Q) => ((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: (((((((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ K) @ S5) @ S7) & ((bval @ B2) @ S5))))) @ C2) @ skip) @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: (((((((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ (suc @ K)) @ T4) @ T6) & (? [U2:((list @ char) > int),U3:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ T4)) @ U2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ T6)) @ U3) & ((Q @ U2) @ U3))))))))))))).
% 2.78/1.53 thf(fact_85_add__right__cancel, axiom, (! [A:$tType]: (((cancel_semigroup_add @ A) => (! [B2:A,A2:A,C2:A]: ((((((plus_plus @ A) @ B2) @ A2) = (((plus_plus @ A) @ C2) @ A2)) = (B2 = C2)))))))).
% 2.78/1.53 thf(fact_86_add__left__cancel, axiom, (! [A:$tType]: (((cancel_semigroup_add @ A) => (! [A2:A,B2:A,C2:A]: ((((((plus_plus @ A) @ A2) @ B2) = (((plus_plus @ A) @ A2) @ C2)) = (B2 = C2)))))))).
% 2.78/1.53 thf(fact_87_ir__valid__If, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C1:com,C22:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ (((if @ B2) @ C1) @ C22)) @ C3) @ Q) => (((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & ((bval @ B2) @ S5))))) @ C1) @ C3) @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: ((((Q @ T4) @ T6) & (? [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S5)) @ T4) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S7)) @ T6) & ((bval @ B2) @ S5)))))))))) & ((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (~ (((bval @ B2) @ S5))))))) @ C22) @ C3) @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: ((((Q @ T4) @ T6) & (? [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ S5)) @ T4) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S7)) @ T6) & (~ (((bval @ B2) @ S5))))))))))))))))).
% 2.78/1.53 thf(fact_88_while__unfold, axiom, (! [B2:bexp,C2:com,S6:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S6)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ ((seq @ C2) @ ((while @ B2) @ C2))) @ skip)) @ S6)) @ T5))))).
% 2.78/1.53 thf(fact_89_If__True__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C_1:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),C_2:com]: ((((((relati167478067_valid @ (^ [A6:((list @ char) > int),C4:((list @ char) > int)]: ((((P @ A6) @ C4) & ((bval @ B2) @ A6))))) @ C_1) @ C3) @ Q) => ((((relati167478067_valid @ P) @ (((if @ B2) @ C_1) @ C_2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_90_If__False__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C_2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),C_1:com]: ((((((relati167478067_valid @ (^ [A6:((list @ char) > int),C4:((list @ char) > int)]: ((((P @ A6) @ C4) & (~ (((bval @ B2) @ A6))))))) @ C_2) @ C3) @ Q) => ((((relati167478067_valid @ P) @ (((if @ B2) @ C_1) @ C_2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_91_ir__While__True, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & ((bval @ B2) @ S5))))) @ ((seq @ C2) @ ((while @ B2) @ C2))) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_92_com_Oinject_I3_J, axiom, (! [X41:bexp,X42:com,X43:com,Y41:bexp,Y42:com,Y43:com]: ((((((if @ X41) @ X42) @ X43) = (((if @ Y41) @ Y42) @ Y43)) = ((X41 = Y41) & ((X42 = Y42) & (X43 = Y43))))))).
% 2.78/1.53 thf(fact_93_ir__Skip__Skip, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o))]: (((((relati1493963588_hoare @ P) @ skip) @ skip) @ P)))).
% 2.78/1.53 thf(fact_94_ir__hoare__Skip__Skip, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ skip) @ skip) @ Q) = (! [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((Q @ S5) @ S7) => ((P @ S5) @ S7)))))))).
% 2.78/1.53 thf(fact_95_ir__disj, axiom, (! [P_1:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q_1:(((list @ char) > int) > (((list @ char) > int) > $o)),P_2:(((list @ char) > int) > (((list @ char) > int) > $o)),Q_2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P_1) @ C2) @ C3) @ Q_1) => (((((relati1493963588_hoare @ P_2) @ C2) @ C3) @ Q_2) => ((((relati1493963588_hoare @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P_1 @ S5) @ S7) | ((P_2 @ S5) @ S7))))) @ C2) @ C3) @ (^ [T4:((list @ char) > int),T6:((list @ char) > int)]: ((((Q_1 @ T4) @ T6) | ((Q_2 @ T4) @ T6)))))))))).
% 2.78/1.53 thf(fact_96_ir__pre, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((P @ S3) @ S4) => ((P2 @ S3) @ S4)))) => ((((relati1493963588_hoare @ P2) @ C2) @ C3) @ Q)))))).
% 2.78/1.53 thf(fact_97_ir__post, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),Q2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((Q2 @ S3) @ S4) => ((Q @ S3) @ S4)))) => ((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q2)))))).
% 2.78/1.53 thf(fact_98_ir__conseq, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P2:(((list @ char) > int) > (((list @ char) > int) > $o)),Q2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((P @ S3) @ S4) => ((P2 @ S3) @ S4)))) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((Q2 @ S3) @ S4) => ((Q @ S3) @ S4)))) => ((((relati1493963588_hoare @ P2) @ C2) @ C3) @ Q2))))))).
% 2.78/1.53 thf(fact_99_ir__If__False, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C_2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),C_1:com]: ((((((relati1493963588_hoare @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (~ (((bval @ B2) @ S5))))))) @ C_2) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ (((if @ B2) @ C_1) @ C_2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_100_ir__If__True, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C_1:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),C_2:com]: ((((((relati1493963588_hoare @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & ((bval @ B2) @ S5))))) @ C_1) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ (((if @ B2) @ C_1) @ C_2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_101_soundness, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => ((((relati167478067_valid @ P) @ C2) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_102_com_Odistinct_I19_J, axiom, (! [X41:bexp,X42:com,X43:com,X51:bexp,X52:com]: (((((if @ X41) @ X42) @ X43) != ((while @ X51) @ X52))))).
% 2.78/1.53 thf(fact_103_com_Odistinct_I5_J, axiom, (! [X41:bexp,X42:com,X43:com]: ((skip != (((if @ X41) @ X42) @ X43))))).
% 2.78/1.53 thf(fact_104_com_Odistinct_I15_J, axiom, (! [X31:com,X32:com,X41:bexp,X42:com,X43:com]: ((((seq @ X31) @ X32) != (((if @ X41) @ X42) @ X43))))).
% 2.78/1.53 thf(fact_105_ir__sym, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ (relati1716060877e_flip @ P)) @ C2) @ C3) @ (relati1716060877e_flip @ Q)) => ((((relati1493963588_hoare @ P) @ C3) @ C2) @ Q))))).
% 2.78/1.53 thf(fact_106_ir__Seq1, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D3:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => (((((relati1493963588_hoare @ Q) @ D3) @ skip) @ R) => ((((relati1493963588_hoare @ P) @ ((seq @ C2) @ D3)) @ C3) @ R)))))).
% 2.78/1.53 thf(fact_107_commute__if, axiom, (! [B1:bexp,B22:bexp,C11:com,C12:com,C22:com,S6:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B1) @ (((if @ B22) @ C11) @ C12)) @ C22)) @ S6)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B22) @ (((if @ B1) @ C11) @ C22)) @ (((if @ B1) @ C12) @ C22))) @ S6)) @ T5))))).
% 2.78/1.53 thf(fact_108_triv__if, axiom, (! [B2:bexp,C2:com,S6:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C2) @ C2)) @ S6)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S6)) @ T5))))).
% 2.78/1.53 thf(fact_109_ab__semigroup__add__class_Oadd__ac_I1_J, axiom, (! [A:$tType]: (((ab_semigroup_add @ A) => (! [A2:A,B2:A,C2:A]: (((((plus_plus @ A) @ (((plus_plus @ A) @ A2) @ B2)) @ C2) = (((plus_plus @ A) @ A2) @ (((plus_plus @ A) @ B2) @ C2))))))))).
% 2.78/1.53 thf(fact_110_add__mono__thms__linordered__semiring_I4_J, axiom, (! [A:$tType]: (((ordere779506340up_add @ A) => (! [I:A,J:A,K:A,L:A]: ((((I = J) & (K = L)) => ((((plus_plus @ A) @ I) @ K) = (((plus_plus @ A) @ J) @ L))))))))).
% 2.78/1.53 thf(fact_111_group__cancel_Oadd1, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [A5:A,K:A,A2:A,B2:A]: (((A5 = (((plus_plus @ A) @ K) @ A2)) => ((((plus_plus @ A) @ A5) @ B2) = (((plus_plus @ A) @ K) @ (((plus_plus @ A) @ A2) @ B2)))))))))).
% 2.78/1.53 thf(fact_112_group__cancel_Oadd2, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [B5:A,K:A,B2:A,A2:A]: (((B5 = (((plus_plus @ A) @ K) @ B2)) => ((((plus_plus @ A) @ A2) @ B5) = (((plus_plus @ A) @ K) @ (((plus_plus @ A) @ A2) @ B2)))))))))).
% 2.78/1.53 thf(fact_113_add_Oassoc, axiom, (! [A:$tType]: (((semigroup_add @ A) => (! [A2:A,B2:A,C2:A]: (((((plus_plus @ A) @ (((plus_plus @ A) @ A2) @ B2)) @ C2) = (((plus_plus @ A) @ A2) @ (((plus_plus @ A) @ B2) @ C2))))))))).
% 2.78/1.53 thf(fact_114_add_Oleft__cancel, axiom, (! [A:$tType]: (((group_add @ A) => (! [A2:A,B2:A,C2:A]: ((((((plus_plus @ A) @ A2) @ B2) = (((plus_plus @ A) @ A2) @ C2)) = (B2 = C2)))))))).
% 2.78/1.53 thf(fact_115_add_Oright__cancel, axiom, (! [A:$tType]: (((group_add @ A) => (! [B2:A,A2:A,C2:A]: ((((((plus_plus @ A) @ B2) @ A2) = (((plus_plus @ A) @ C2) @ A2)) = (B2 = C2)))))))).
% 2.78/1.53 thf(fact_116_add_Ocommute, axiom, (! [A:$tType]: (((ab_semigroup_add @ A) => ((plus_plus @ A) = (^ [A6:A,B6:A]: ((((plus_plus @ A) @ B6) @ A6)))))))).
% 2.78/1.53 thf(fact_117_add_Oleft__commute, axiom, (! [A:$tType]: (((ab_semigroup_add @ A) => (! [B2:A,A2:A,C2:A]: (((((plus_plus @ A) @ B2) @ (((plus_plus @ A) @ A2) @ C2)) = (((plus_plus @ A) @ A2) @ (((plus_plus @ A) @ B2) @ C2))))))))).
% 2.78/1.53 thf(fact_118_add__left__imp__eq, axiom, (! [A:$tType]: (((cancel_semigroup_add @ A) => (! [A2:A,B2:A,C2:A]: ((((((plus_plus @ A) @ A2) @ B2) = (((plus_plus @ A) @ A2) @ C2)) => (B2 = C2)))))))).
% 2.78/1.53 thf(fact_119_add__right__imp__eq, axiom, (! [A:$tType]: (((cancel_semigroup_add @ A) => (! [B2:A,A2:A,C2:A]: ((((((plus_plus @ A) @ B2) @ A2) = (((plus_plus @ A) @ C2) @ A2)) => (B2 = C2)))))))).
% 2.78/1.53 thf(fact_120_ir__Skip, axiom, (! [Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com]: (((! [T7:((list @ char) > int),T8:((list @ char) > int)]: ((((Q @ T7) @ T8) => (? [S8:((list @ char) > int)]: ((((P @ T7) @ S8) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S8)) @ T8))))))) => ((((relati1493963588_hoare @ P) @ skip) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_121_IfFalse, axiom, (! [B2:bexp,S:((list @ char) > int),C_2:com,T2:((list @ char) > int),C_1:com]: (((~ (((bval @ B2) @ S))) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C_2) @ S)) @ T2) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C_1) @ C_2)) @ S)) @ T2)))))).
% 2.78/1.53 thf(fact_122_IfTrue, axiom, (! [B2:bexp,S:((list @ char) > int),C_1:com,T2:((list @ char) > int),C_2:com]: ((((bval @ B2) @ S) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C_1) @ S)) @ T2) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C_1) @ C_2)) @ S)) @ T2)))))).
% 2.78/1.53 thf(fact_123_IfE, axiom, (! [B2:bexp,C1:com,C22:com,S:((list @ char) > int),T2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C1) @ C22)) @ S)) @ T2) => ((((bval @ B2) @ S) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S)) @ T2)))) => (~ (((~ (((bval @ B2) @ S))) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ S)) @ T2))))))))))).
% 2.78/1.53 thf(fact_124_ir__While__False, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),B2:bexp,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com]: ((((((relati1493963588_hoare @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((((P @ S5) @ S7) & (~ (((bval @ B2) @ S5))))))) @ skip) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 2.78/1.53 thf(fact_125_com_Oexhaust, axiom, (! [Y:com]: (((Y != skip) => ((! [X21:(list @ char),X22:aexp]: ((Y != ((assign @ X21) @ X22)))) => ((! [X312:com,X322:com]: ((Y != ((seq @ X312) @ X322)))) => ((! [X412:bexp,X422:com,X432:com]: ((Y != (((if @ X412) @ X422) @ X432)))) => (~ ((! [X512:bexp,X522:com]: ((Y != ((while @ X512) @ X522))))))))))))).
% 2.78/1.53 thf(fact_126_com_Oinduct, axiom, (! [P:(com > $o),Com:com]: (((P @ skip) => ((! [X12:(list @ char),X23:aexp]: ((P @ ((assign @ X12) @ X23)))) => ((! [X12:com,X23:com]: (((P @ X12) => ((P @ X23) => (P @ ((seq @ X12) @ X23)))))) => ((! [X12:bexp,X23:com,X33:com]: (((P @ X23) => ((P @ X33) => (P @ (((if @ X12) @ X23) @ X33)))))) => ((! [X12:bexp,X23:com]: (((P @ X23) => (P @ ((while @ X12) @ X23))))) => (P @ Com))))))))).
% 2.78/1.53 thf(fact_127_image2__def, axiom, (! [A:$tType,B:$tType,C:$tType]: (((((bNF_Greatest_image2 @ C) @ A) @ B) = (^ [A7:(set @ C),F4:(C > A),G4:(C > B)]: (((collect @ ((product_prod @ A) @ B)) @ (^ [Uu:((product_prod @ A) @ B)]: ((? [A6:C]: (((Uu = ((((product_Pair @ A) @ B) @ (F4 @ A6)) @ (G4 @ A6))) & (((member @ C) @ A6) @ A7))))))))))))).
% 2.78/1.53 thf(fact_128_While__backwards__frontier__ir__valid, axiom, (! [P:(nat > (((list @ char) > int) > (((list @ char) > int) > $o))),B2:bexp,C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: (((! [N2:nat]: (((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: (((((P @ N2) @ S5) @ S7) & ((bval @ B2) @ S5))))) @ C2) @ skip) @ (P @ (suc @ N2))))) => (((((relati167478067_valid @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((? [N4:nat]: ((((P @ N4) @ S5) @ S7)))))) @ ((while @ B2) @ C2)) @ C3) @ Q) => ((((relati167478067_valid @ (P @ (zero_zero @ nat))) @ ((while @ B2) @ C2)) @ C3) @ Q)))))).
% 2.78/1.53 thf(fact_129_is__num__normalize_I1_J, axiom, (! [A:$tType]: (((neg_numeral @ A) => (! [A2:A,B2:A,C2:A]: (((((plus_plus @ A) @ (((plus_plus @ A) @ A2) @ B2)) @ C2) = (((plus_plus @ A) @ A2) @ (((plus_plus @ A) @ B2) @ C2))))))))).
% 2.78/1.53 thf(fact_130_com_Oinject_I1_J, axiom, (! [X212:(list @ char),X222:aexp,Y21:(list @ char),Y22:aexp]: (((((assign @ X212) @ X222) = ((assign @ Y21) @ Y22)) = ((X212 = Y21) & (X222 = Y22)))))).
% 2.78/1.53 thf(fact_131_add_Oleft__neutral, axiom, (! [A:$tType]: (((monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ (zero_zero @ A)) @ A2) = A2))))))).
% 2.78/1.53 thf(fact_132_add_Oright__neutral, axiom, (! [A:$tType]: (((monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ A2) @ (zero_zero @ A)) = A2))))))).
% 2.78/1.53 thf(fact_133_double__zero, axiom, (! [A:$tType]: (((linord219039673up_add @ A) => (! [A2:A]: ((((((plus_plus @ A) @ A2) @ A2) = (zero_zero @ A)) = (A2 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_134_double__zero__sym, axiom, (! [A:$tType]: (((linord219039673up_add @ A) => (! [A2:A]: ((((zero_zero @ A) = (((plus_plus @ A) @ A2) @ A2)) = (A2 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_135_add__cancel__left__left, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [B2:A,A2:A]: ((((((plus_plus @ A) @ B2) @ A2) = A2) = (B2 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_136_add__cancel__left__right, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A,B2:A]: ((((((plus_plus @ A) @ A2) @ B2) = A2) = (B2 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_137_add__cancel__right__left, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A,B2:A]: (((A2 = (((plus_plus @ A) @ B2) @ A2)) = (B2 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_138_add__cancel__right__right, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A,B2:A]: (((A2 = (((plus_plus @ A) @ A2) @ B2)) = (B2 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_139_add__eq__0__iff__both__eq__0, axiom, (! [A:$tType]: (((canoni770627133id_add @ A) => (! [X:A,Y:A]: ((((((plus_plus @ A) @ X) @ Y) = (zero_zero @ A)) = ((X = (zero_zero @ A)) & (Y = (zero_zero @ A)))))))))).
% 2.78/1.53 thf(fact_140_zero__eq__add__iff__both__eq__0, axiom, (! [A:$tType]: (((canoni770627133id_add @ A) => (! [X:A,Y:A]: ((((zero_zero @ A) = (((plus_plus @ A) @ X) @ Y)) = ((X = (zero_zero @ A)) & (Y = (zero_zero @ A)))))))))).
% 2.78/1.53 thf(fact_141_add__is__0, axiom, (! [M:nat,N:nat]: ((((((plus_plus @ nat) @ M) @ N) = (zero_zero @ nat)) = ((M = (zero_zero @ nat)) & (N = (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_142_Nat_Oadd__0__right, axiom, (! [M:nat]: (((((plus_plus @ nat) @ M) @ (zero_zero @ nat)) = M)))).
% 2.78/1.53 thf(fact_143_zero__reorient, axiom, (! [A:$tType]: (((zero @ A) => (! [X:A]: ((((zero_zero @ A) = X) = (X = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_144_comm__monoid__add__class_Oadd__0, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ (zero_zero @ A)) @ A2) = A2))))))).
% 2.78/1.53 thf(fact_145_add_Ocomm__neutral, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ A2) @ (zero_zero @ A)) = A2))))))).
% 2.78/1.53 thf(fact_146_add_Ogroup__left__neutral, axiom, (! [A:$tType]: (((group_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ (zero_zero @ A)) @ A2) = A2))))))).
% 2.78/1.53 thf(fact_147_nat_Odistinct_I1_J, axiom, (! [X2:nat]: (((zero_zero @ nat) != (suc @ X2))))).
% 2.78/1.53 thf(fact_148_old_Onat_Odistinct_I2_J, axiom, (! [Nat3:nat]: (((suc @ Nat3) != (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_149_old_Onat_Odistinct_I1_J, axiom, (! [Nat2:nat]: (((zero_zero @ nat) != (suc @ Nat2))))).
% 2.78/1.53 thf(fact_150_nat_OdiscI, axiom, (! [Nat:nat,X2:nat]: (((Nat = (suc @ X2)) => (Nat != (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_151_nat__induct, axiom, (! [P:(nat > $o),N:nat]: (((P @ (zero_zero @ nat)) => ((! [N2:nat]: (((P @ N2) => (P @ (suc @ N2))))) => (P @ N)))))).
% 2.78/1.53 thf(fact_152_diff__induct, axiom, (! [P:(nat > (nat > $o)),M:nat,N:nat]: (((! [X4:nat]: (((P @ X4) @ (zero_zero @ nat)))) => ((! [Y3:nat]: (((P @ (zero_zero @ nat)) @ (suc @ Y3)))) => ((! [X4:nat,Y3:nat]: ((((P @ X4) @ Y3) => ((P @ (suc @ X4)) @ (suc @ Y3))))) => ((P @ M) @ N))))))).
% 2.78/1.53 thf(fact_153_zero__induct, axiom, (! [P:(nat > $o),K:nat]: (((P @ K) => ((! [N2:nat]: (((P @ (suc @ N2)) => (P @ N2)))) => (P @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_154_Suc__neq__Zero, axiom, (! [M:nat]: (((suc @ M) != (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_155_Zero__neq__Suc, axiom, (! [M:nat]: (((zero_zero @ nat) != (suc @ M))))).
% 2.78/1.53 thf(fact_156_Zero__not__Suc, axiom, (! [M:nat]: (((zero_zero @ nat) != (suc @ M))))).
% 2.78/1.53 thf(fact_157_old_Onat_Oexhaust, axiom, (! [Y:nat]: (((Y != (zero_zero @ nat)) => (~ ((! [Nat4:nat]: ((Y != (suc @ Nat4)))))))))).
% 2.78/1.53 thf(fact_158_old_Onat_Oinducts, axiom, (! [P:(nat > $o),Nat:nat]: (((P @ (zero_zero @ nat)) => ((! [Nat4:nat]: (((P @ Nat4) => (P @ (suc @ Nat4))))) => (P @ Nat)))))).
% 2.78/1.53 thf(fact_159_not0__implies__Suc, axiom, (! [N:nat]: (((N != (zero_zero @ nat)) => (? [M2:nat]: ((N = (suc @ M2)))))))).
% 2.78/1.53 thf(fact_160_plus__nat_Oadd__0, axiom, (! [N:nat]: (((((plus_plus @ nat) @ (zero_zero @ nat)) @ N) = N)))).
% 2.78/1.53 thf(fact_161_add__eq__self__zero, axiom, (! [M:nat,N:nat]: ((((((plus_plus @ nat) @ M) @ N) = M) => (N = (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_162_image2__eqI, axiom, (! [A:$tType,C:$tType,B:$tType,B2:A,F3:(B > A),X:B,C2:C,G3:(B > C),A5:(set @ B)]: (((B2 = (F3 @ X)) => ((C2 = (G3 @ X)) => ((((member @ B) @ X) @ A5) => (((member @ ((product_prod @ A) @ C)) @ ((((product_Pair @ A) @ C) @ B2) @ C2)) @ ((((((bNF_Greatest_image2 @ B) @ A) @ C) @ A5) @ F3) @ G3)))))))).
% 2.78/1.53 thf(fact_163_com_Odistinct_I13_J, axiom, (! [X212:(list @ char),X222:aexp,X51:bexp,X52:com]: ((((assign @ X212) @ X222) != ((while @ X51) @ X52))))).
% 2.78/1.53 thf(fact_164_com_Odistinct_I1_J, axiom, (! [X212:(list @ char),X222:aexp]: ((skip != ((assign @ X212) @ X222))))).
% 2.78/1.53 thf(fact_165_com_Odistinct_I9_J, axiom, (! [X212:(list @ char),X222:aexp,X31:com,X32:com]: ((((assign @ X212) @ X222) != ((seq @ X31) @ X32))))).
% 2.78/1.53 thf(fact_166_com_Odistinct_I11_J, axiom, (! [X212:(list @ char),X222:aexp,X41:bexp,X42:com,X43:com]: ((((assign @ X212) @ X222) != (((if @ X41) @ X42) @ X43))))).
% 2.78/1.53 thf(fact_167_get__back_Osimps_I1_J, axiom, (! [A:$tType,P:(((list @ char) > int) > (A > $o)),B2:bexp,C2:com]: (((((((relati1010904253t_back @ A) @ P) @ B2) @ C2) @ (zero_zero @ nat)) = P)))).
% 2.78/1.53 thf(fact_168_one__is__add, axiom, (! [M:nat,N:nat]: ((((suc @ (zero_zero @ nat)) = (((plus_plus @ nat) @ M) @ N)) = (((M = (suc @ (zero_zero @ nat))) & (N = (zero_zero @ nat))) | ((M = (zero_zero @ nat)) & (N = (suc @ (zero_zero @ nat))))))))).
% 2.78/1.53 thf(fact_169_add__is__1, axiom, (! [M:nat,N:nat]: ((((((plus_plus @ nat) @ M) @ N) = (suc @ (zero_zero @ nat))) = (((M = (suc @ (zero_zero @ nat))) & (N = (zero_zero @ nat))) | ((M = (zero_zero @ nat)) & (N = (suc @ (zero_zero @ nat))))))))).
% 2.78/1.53 thf(fact_170_ir__While__backwards__frontier, axiom, (! [P:(nat > (((list @ char) > int) > (((list @ char) > int) > $o))),B2:bexp,C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: (((! [N2:nat]: (((((relati1493963588_hoare @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: (((((P @ N2) @ S5) @ S7) & ((bval @ B2) @ S5))))) @ C2) @ skip) @ (P @ (suc @ N2))))) => (((((relati1493963588_hoare @ (^ [S5:((list @ char) > int),S7:((list @ char) > int)]: ((? [N4:nat]: ((((P @ N4) @ S5) @ S7)))))) @ ((while @ B2) @ C2)) @ C3) @ Q) => ((((relati1493963588_hoare @ (P @ (zero_zero @ nat))) @ ((while @ B2) @ C2)) @ C3) @ Q)))))).
% 2.78/1.53 thf(fact_171_com_Osize__gen_I4_J, axiom, (! [X41:bexp,X42:com,X43:com]: (((size_com @ (((if @ X41) @ X42) @ X43)) = (((plus_plus @ nat) @ (((plus_plus @ nat) @ (size_com @ X42)) @ (size_com @ X43))) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_172_com_Osize__gen_I3_J, axiom, (! [X31:com,X32:com]: (((size_com @ ((seq @ X31) @ X32)) = (((plus_plus @ nat) @ (((plus_plus @ nat) @ (size_com @ X31)) @ (size_com @ X32))) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_173_com_Osize__gen_I5_J, axiom, (! [X51:bexp,X52:com]: (((size_com @ ((while @ X51) @ X52)) = (((plus_plus @ nat) @ (size_com @ X52)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_174_com_Osize_I9_J, axiom, (! [X41:bexp,X42:com,X43:com]: ((((size_size @ com) @ (((if @ X41) @ X42) @ X43)) = (((plus_plus @ nat) @ (((plus_plus @ nat) @ ((size_size @ com) @ X42)) @ ((size_size @ com) @ X43))) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_175_size__neq__size__imp__neq, axiom, (! [A:$tType]: (((size @ A) => (! [X:A,Y:A]: (((((size_size @ A) @ X) != ((size_size @ A) @ Y)) => (X != Y)))))))).
% 2.78/1.53 thf(fact_176_com_Osize_I6_J, axiom, (((size_size @ com) @ skip) = (zero_zero @ nat))).
% 2.78/1.53 thf(fact_177_com_Osize_I7_J, axiom, (! [X212:(list @ char),X222:aexp]: ((((size_size @ com) @ ((assign @ X212) @ X222)) = (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_178_com_Osize__gen_I1_J, axiom, ((size_com @ skip) = (zero_zero @ nat))).
% 2.78/1.53 thf(fact_179_com_Osize__gen_I2_J, axiom, (! [X212:(list @ char),X222:aexp]: (((size_com @ ((assign @ X212) @ X222)) = (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_180_com_Osize_I10_J, axiom, (! [X51:bexp,X52:com]: ((((size_size @ com) @ ((while @ X51) @ X52)) = (((plus_plus @ nat) @ ((size_size @ com) @ X52)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_181_com_Osize_I8_J, axiom, (! [X31:com,X32:com]: ((((size_size @ com) @ ((seq @ X31) @ X32)) = (((plus_plus @ nat) @ (((plus_plus @ nat) @ ((size_size @ com) @ X31)) @ ((size_size @ com) @ X32))) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_182_Euclid__induct, axiom, (! [P:(nat > (nat > $o)),A2:nat,B2:nat]: (((! [A4:nat,B4:nat]: ((((P @ A4) @ B4) = ((P @ B4) @ A4)))) => ((! [A4:nat]: (((P @ A4) @ (zero_zero @ nat)))) => ((! [A4:nat,B4:nat]: ((((P @ A4) @ B4) => ((P @ A4) @ (((plus_plus @ nat) @ A4) @ B4))))) => ((P @ A2) @ B2))))))).
% 2.78/1.53 thf(fact_183_dependent__nat__choice, axiom, (! [A:$tType,P:(nat > (A > $o)),Q:(nat > (A > (A > $o)))]: (((? [X_1:A]: (((P @ (zero_zero @ nat)) @ X_1))) => ((! [X4:A,N2:nat]: ((((P @ N2) @ X4) => (? [Y5:A]: ((((P @ (suc @ N2)) @ Y5) & (((Q @ N2) @ X4) @ Y5))))))) => (? [F2:(nat > A)]: ((! [N3:nat]: ((((P @ N3) @ (F2 @ N3)) & (((Q @ N3) @ (F2 @ N3)) @ (F2 @ (suc @ N3))))))))))))).
% 2.78/1.53 thf(fact_184_verit__sum__simplify, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ A2) @ (zero_zero @ A)) = A2))))))).
% 2.78/1.53 thf(fact_185_add__0__iff, axiom, (! [A:$tType]: (((semiri456707255roduct @ A) => (! [B2:A,A2:A]: (((B2 = (((plus_plus @ A) @ B2) @ A2)) = (A2 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_186_relImage__def, axiom, (! [A:$tType,B:$tType]: ((((bNF_Gr1317331620lImage @ B) @ A) = (^ [R2:(set @ ((product_prod @ B) @ B)),F4:(B > A)]: (((collect @ ((product_prod @ A) @ A)) @ (^ [Uu:((product_prod @ A) @ A)]: ((? [A1:B,A22:B]: (((Uu = ((((product_Pair @ A) @ A) @ (F4 @ A1)) @ (F4 @ A22))) & (((member @ ((product_prod @ B) @ B)) @ ((((product_Pair @ B) @ B) @ A1) @ A22)) @ R2))))))))))))).
% 2.78/1.53 thf(fact_187_relInvImage__def, axiom, (! [B:$tType,A:$tType]: ((((bNF_Gr2107612801vImage @ A) @ B) = (^ [A7:(set @ A),R2:(set @ ((product_prod @ B) @ B)),F4:(A > B)]: (((collect @ ((product_prod @ A) @ A)) @ (^ [Uu:((product_prod @ A) @ A)]: ((? [A1:A,A22:A]: (((Uu = ((((product_Pair @ A) @ A) @ A1) @ A22)) & ((((member @ A) @ A1) @ A7) & ((((member @ A) @ A22) @ A7) & (((member @ ((product_prod @ B) @ B)) @ ((((product_Pair @ B) @ B) @ (F4 @ A1)) @ (F4 @ A22))) @ R2))))))))))))))).
% 2.78/1.53 thf(fact_188_fun__cong__unused__0, axiom, (! [A:$tType,B:$tType,C:$tType]: (((zero @ B) => (! [F3:((A > B) > C),G3:C]: (((F3 = (^ [X3:(A > B)]: (G3))) => ((F3 @ (^ [X3:A]: ((zero_zero @ B)))) = G3)))))))).
% 2.78/1.53 thf(fact_189_divides__aux__eq, axiom, (! [A:$tType]: (((unique1598680935umeral @ A) => (! [Q4:A,R3:A]: ((((unique455577585es_aux @ A) @ ((((product_Pair @ A) @ A) @ Q4) @ R3)) = (R3 = (zero_zero @ A))))))))).
% 2.78/1.53 thf(fact_190_image2p__def, axiom, (! [D:$tType,B:$tType,A:$tType,C:$tType]: ((((((bNF_Greatest_image2p @ C) @ A) @ D) @ B) = (^ [F4:(C > A),G4:(D > B),R2:(C > (D > $o)),X3:A,Y4:B]: ((? [X5:C,Y6:D]: ((((R2 @ X5) @ Y6) & (((F4 @ X5) = X3) & ((G4 @ Y6) = Y4))))))))))).
% 2.78/1.53 thf(fact_191_image2pI, axiom, (! [A:$tType,C:$tType,D:$tType,B:$tType,R:(A > (B > $o)),X:A,Y:B,F3:(A > C),G3:(B > D)]: ((((R @ X) @ Y) => (((((((((bNF_Greatest_image2p @ A) @ C) @ B) @ D) @ F3) @ G3) @ R) @ (F3 @ X)) @ (G3 @ Y)))))).
% 2.78/1.53 thf(fact_192_image2pE, axiom, (! [D:$tType,B:$tType,A:$tType,C:$tType,F3:(A > B),G3:(C > D),R:(A > (C > $o)),Fx:B,Gy:D]: (((((((((((bNF_Greatest_image2p @ A) @ B) @ C) @ D) @ F3) @ G3) @ R) @ Fx) @ Gy) => (~ ((! [X4:A]: (((Fx = (F3 @ X4)) => (! [Y3:C]: (((Gy = (G3 @ Y3)) => (~ (((R @ X4) @ Y3))))))))))))))).
% 2.78/1.53 thf(fact_193_zero__natural_Orsp, axiom, ((zero_zero @ nat) = (zero_zero @ nat))).
% 2.78/1.53 thf(fact_194_option_Osize__neq, axiom, (! [A:$tType,X:(option @ A)]: ((((size_size @ (option @ A)) @ X) != (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_195_option_Osize_I3_J, axiom, (! [A:$tType]: ((((size_size @ (option @ A)) @ (none @ A)) = (suc @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_196_option_Osize_I4_J, axiom, (! [A:$tType,X2:A]: ((((size_size @ (option @ A)) @ ((some @ A) @ X2)) = (suc @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_197_option_Osize__gen_I2_J, axiom, (! [A:$tType,X:(A > nat),X2:A]: (((((size_option @ A) @ X) @ ((some @ A) @ X2)) = (((plus_plus @ nat) @ (X @ X2)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_198_option_Osize__gen_I1_J, axiom, (! [A:$tType,X:(A > nat)]: (((((size_option @ A) @ X) @ (none @ A)) = (suc @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_199_tuple__isomorphism_Osize__neq, axiom, (! [A:$tType,B:$tType,C:$tType,X:(((tuple_isomorphism @ A) @ B) @ C)]: ((((size_size @ (((tuple_isomorphism @ A) @ B) @ C)) @ X) != (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_200_prod_Osize__neq, axiom, (! [A:$tType,B:$tType,X:((product_prod @ A) @ B)]: ((((size_size @ ((product_prod @ A) @ B)) @ X) != (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_201_sum_Osize__neq, axiom, (! [A:$tType,B:$tType,X:((sum_sum @ A) @ B)]: ((((size_size @ ((sum_sum @ A) @ B)) @ X) != (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_202_tuple__isomorphism_Osize_I2_J, axiom, (! [B:$tType,C:$tType,A:$tType,X1:(A > ((product_prod @ B) @ C)),X2:(((product_prod @ B) @ C) > A)]: ((((size_size @ (((tuple_isomorphism @ A) @ B) @ C)) @ (((((tuple_742722141rphism @ A) @ B) @ C) @ X1) @ X2)) = (suc @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_203_typerep_Osize__neq, axiom, (! [X:typerep]: ((((size_size @ typerep) @ X) != (zero_zero @ nat))))).
% 2.78/1.53 thf(fact_204_tuple__isomorphism_Osize__gen, axiom, (! [B:$tType,C:$tType,A:$tType,Xb:(A > nat),Xa:(B > nat),X:(C > nat),X1:(A > ((product_prod @ B) @ C)),X2:(((product_prod @ B) @ C) > A)]: (((((((((tuple_1907371454rphism @ A) @ B) @ C) @ Xb) @ Xa) @ X) @ (((((tuple_742722141rphism @ A) @ B) @ C) @ X1) @ X2)) = (suc @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_205_sum_Osize_I3_J, axiom, (! [A:$tType,B:$tType,X1:A]: ((((size_size @ ((sum_sum @ A) @ B)) @ (((sum_Inl @ A) @ B) @ X1)) = (suc @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_206_sum_Osize__gen_I1_J, axiom, (! [B:$tType,A:$tType,Xa:(A > nat),X:(B > nat),X1:A]: (((((((basic_BNF_size_sum @ A) @ B) @ Xa) @ X) @ (((sum_Inl @ A) @ B) @ X1)) = (((plus_plus @ nat) @ (Xa @ X1)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_207_sum_Osize_I4_J, axiom, (! [B:$tType,A:$tType,X2:B]: ((((size_size @ ((sum_sum @ A) @ B)) @ (((sum_Inr @ B) @ A) @ X2)) = (suc @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_208_obj__sumE, axiom, (! [A:$tType,B:$tType,S:((sum_sum @ A) @ B)]: (((! [X4:A]: ((S != (((sum_Inl @ A) @ B) @ X4)))) => (~ ((! [X4:B]: ((S != (((sum_Inr @ B) @ A) @ X4)))))))))).
% 2.78/1.53 thf(fact_209_sum_Osize__gen_I2_J, axiom, (! [A:$tType,B:$tType,Xa:(A > nat),X:(B > nat),X2:B]: (((((((basic_BNF_size_sum @ A) @ B) @ Xa) @ X) @ (((sum_Inr @ B) @ A) @ X2)) = (((plus_plus @ nat) @ (X @ X2)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_210_not__arg__cong__Inr, axiom, (! [B:$tType,A:$tType,X:A,Y:A]: (((X != Y) => ((((sum_Inr @ A) @ B) @ X) != (((sum_Inr @ A) @ B) @ Y)))))).
% 2.78/1.53 thf(fact_211_case__optionE, axiom, (! [A:$tType,P:$o,Q:(A > $o),X:(option @ A)]: (((((((case_option @ $o) @ A) @ P) @ Q) @ X) => (((X = (none @ A)) => (~ (P))) => (~ ((! [Y3:A]: (((X = ((some @ A) @ Y3)) => (~ ((Q @ Y3))))))))))))).
% 2.78/1.53 thf(fact_212_ssubst__Pair__rhs, axiom, (! [B:$tType,A:$tType,R3:A,S:B,R:(set @ ((product_prod @ A) @ B)),S2:B]: (((((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ R3) @ S)) @ R) => ((S2 = S) => (((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ R3) @ S2)) @ R)))))).
% 2.78/1.53 thf(fact_213_option_Ocase__distrib, axiom, (! [C:$tType,B:$tType,A:$tType,H:(B > C),F1:B,F22:(A > B),Option:(option @ A)]: (((H @ (((((case_option @ B) @ A) @ F1) @ F22) @ Option)) = (((((case_option @ C) @ A) @ (H @ F1)) @ (^ [X3:A]: ((H @ (F22 @ X3))))) @ Option))))).
% 2.78/1.53 thf(fact_214_option_Odisc__eq__case_I2_J, axiom, (! [A:$tType,Option:(option @ A)]: (((Option != (none @ A)) = (((((case_option @ $o) @ A) @ $false) @ (^ [Uu:A]: ($true))) @ Option))))).
% 2.78/1.53 thf(fact_215_option_Odisc__eq__case_I1_J, axiom, (! [A:$tType,Option:(option @ A)]: (((Option = (none @ A)) = (((((case_option @ $o) @ A) @ $true) @ (^ [Uu:A]: ($false))) @ Option))))).
% 2.78/1.53 thf(fact_216_disjE__realizer2, axiom, (! [B:$tType,A:$tType,P:$o,Q:(A > $o),X:(option @ A),R:(B > $o),F3:B,G3:(A > B)]: (((((((case_option @ $o) @ A) @ P) @ Q) @ X) => ((P => (R @ F3)) => ((! [Q5:A]: (((Q @ Q5) => (R @ (G3 @ Q5))))) => (R @ (((((case_option @ B) @ A) @ F3) @ G3) @ X)))))))).
% 2.78/1.53 thf(fact_217_typerep_Osize_I2_J, axiom, (! [X1:literal,X2:(list @ typerep)]: ((((size_size @ typerep) @ ((typerep2 @ X1) @ X2)) = (((plus_plus @ nat) @ (((size_list @ typerep) @ (size_size @ typerep)) @ X2)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_218_typerep_Osize__gen, axiom, (! [X1:literal,X2:(list @ typerep)]: (((size_typerep @ ((typerep2 @ X1) @ X2)) = (((plus_plus @ nat) @ (((size_list @ typerep) @ size_typerep) @ X2)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_219_list_Osize__gen_I2_J, axiom, (! [A:$tType,X:(A > nat),X212:A,X222:(list @ A)]: (((((size_list @ A) @ X) @ (((cons @ A) @ X212) @ X222)) = (((plus_plus @ nat) @ (((plus_plus @ nat) @ (X @ X212)) @ (((size_list @ A) @ X) @ X222))) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_220_length__Suc__conv, axiom, (! [A:$tType,Xs:(list @ A),N:nat]: (((((size_size @ (list @ A)) @ Xs) = (suc @ N)) = (? [Y4:A,Ys:(list @ A)]: (((Xs = (((cons @ A) @ Y4) @ Ys)) & (((size_size @ (list @ A)) @ Ys) = N)))))))).
% 2.78/1.53 thf(fact_221_Suc__length__conv, axiom, (! [A:$tType,N:nat,Xs:(list @ A)]: ((((suc @ N) = ((size_size @ (list @ A)) @ Xs)) = (? [Y4:A,Ys:(list @ A)]: (((Xs = (((cons @ A) @ Y4) @ Ys)) & (((size_size @ (list @ A)) @ Ys) = N)))))))).
% 2.78/1.53 thf(fact_222_length__Cons, axiom, (! [A:$tType,X:A,Xs:(list @ A)]: ((((size_size @ (list @ A)) @ (((cons @ A) @ X) @ Xs)) = (suc @ ((size_size @ (list @ A)) @ Xs)))))).
% 2.78/1.53 thf(fact_223_list_Osize_I4_J, axiom, (! [A:$tType,X212:A,X222:(list @ A)]: ((((size_size @ (list @ A)) @ (((cons @ A) @ X212) @ X222)) = (((plus_plus @ nat) @ ((size_size @ (list @ A)) @ X222)) @ (suc @ (zero_zero @ nat))))))).
% 2.78/1.53 thf(fact_224_shift__def, axiom, (! [B:$tType,A:$tType]: ((((bNF_Greatest_shift @ A) @ B) = (^ [Lab:((list @ A) > B),K2:A,Kl:(list @ A)]: ((Lab @ (((cons @ A) @ K2) @ Kl)))))))).
% 2.78/1.53 thf(fact_225_set__Cons__def, axiom, (! [A:$tType]: (((set_Cons @ A) = (^ [A7:(set @ A),XS:(set @ (list @ A))]: (((collect @ (list @ A)) @ (^ [Z:(list @ A)]: ((? [X3:A,Xs2:(list @ A)]: (((Z = (((cons @ A) @ X3) @ Xs2)) & ((((member @ A) @ X3) @ A7) & (((member @ (list @ A)) @ Xs2) @ XS)))))))))))))).
% 2.78/1.53 thf(fact_226_neq__if__length__neq, axiom, (! [A:$tType,Xs:(list @ A),Ys2:(list @ A)]: (((((size_size @ (list @ A)) @ Xs) != ((size_size @ (list @ A)) @ Ys2)) => (Xs != Ys2))))).
% 2.78/1.53 thf(fact_227_Ex__list__of__length, axiom, (! [A:$tType,N:nat]: ((? [Xs3:(list @ A)]: ((((size_size @ (list @ A)) @ Xs3) = N)))))).
% 2.78/1.53 thf(fact_228_Cons__in__lex, axiom, (! [A:$tType,X:A,Xs:(list @ A),Y:A,Ys2:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((cons @ A) @ X) @ Xs)) @ (((cons @ A) @ Y) @ Ys2))) @ ((lex @ A) @ R3)) = (((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X) @ Y)) @ R3) & (((size_size @ (list @ A)) @ Xs) = ((size_size @ (list @ A)) @ Ys2))) | ((X = Y) & (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Ys2)) @ ((lex @ A) @ R3)))))))).
% 2.78/1.53 thf(fact_229_gen__length__def, axiom, (! [A:$tType]: (((gen_length @ A) = (^ [N4:nat,Xs2:(list @ A)]: ((((plus_plus @ nat) @ N4) @ ((size_size @ (list @ A)) @ Xs2)))))))).
% 2.78/1.53 thf(fact_230_gen__length__code_I2_J, axiom, (! [B:$tType,N:nat,X:B,Xs:(list @ B)]: (((((gen_length @ B) @ N) @ (((cons @ B) @ X) @ Xs)) = (((gen_length @ B) @ (suc @ N)) @ Xs))))).
% 2.78/1.53 thf(fact_231_length__code, axiom, (! [A:$tType]: (((size_size @ (list @ A)) = ((gen_length @ A) @ (zero_zero @ nat)))))).
% 2.78/1.53 thf(fact_232_lexord__cons__cons, axiom, (! [A:$tType,A2:A,X:(list @ A),B2:A,Y:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((cons @ A) @ A2) @ X)) @ (((cons @ A) @ B2) @ Y))) @ ((lexord @ A) @ R3)) = ((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ A2) @ B2)) @ R3) | ((A2 = B2) & (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ X) @ Y)) @ ((lexord @ A) @ R3)))))))).
% 2.78/1.53 thf(fact_233_lexn__length, axiom, (! [A:$tType,Xs:(list @ A),Ys2:(list @ A),R3:(set @ ((product_prod @ A) @ A)),N:nat]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Ys2)) @ (((lexn @ A) @ R3) @ N)) => ((((size_size @ (list @ A)) @ Xs) = N) & (((size_size @ (list @ A)) @ Ys2) = N)))))).
% 2.78/1.53 thf(fact_234_lexord__irreflexive, axiom, (! [A:$tType,R3:(set @ ((product_prod @ A) @ A)),Xs:(list @ A)]: (((! [X4:A]: ((~ ((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X4) @ X4)) @ R3))))) => (~ ((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Xs)) @ ((lexord @ A) @ R3)))))))).
% 2.78/1.53 thf(fact_235_lexord__linear, axiom, (! [A:$tType,R3:(set @ ((product_prod @ A) @ A)),X:(list @ A),Y:(list @ A)]: (((! [A4:A,B4:A]: (((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ A4) @ B4)) @ R3) | ((A4 = B4) | (((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ B4) @ A4)) @ R3))))) => ((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ X) @ Y)) @ ((lexord @ A) @ R3)) | ((X = Y) | (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Y) @ X)) @ ((lexord @ A) @ R3)))))))).
% 2.78/1.53 thf(fact_236_lexord__lex, axiom, (! [A:$tType,X:(list @ A),Y:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ X) @ Y)) @ ((lex @ A) @ R3)) = ((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ X) @ Y)) @ ((lexord @ A) @ R3)) & (((size_size @ (list @ A)) @ X) = ((size_size @ (list @ A)) @ Y))))))).
% 2.78/1.53 thf(fact_237_length__splice, axiom, (! [A:$tType,Xs:(list @ A),Ys2:(list @ A)]: ((((size_size @ (list @ A)) @ (((splice @ A) @ Xs) @ Ys2)) = (((plus_plus @ nat) @ ((size_size @ (list @ A)) @ Xs)) @ ((size_size @ (list @ A)) @ Ys2)))))).
% 2.78/1.53 thf(fact_238_Shift__def, axiom, (! [A:$tType]: (((bNF_Greatest_Shift @ A) = (^ [Kl2:(set @ (list @ A)),K2:A]: (((collect @ (list @ A)) @ (^ [Kl:(list @ A)]: ((((member @ (list @ A)) @ (((cons @ A) @ K2) @ Kl)) @ Kl2)))))))))).
% 2.78/1.53 thf(fact_239_ShiftD, axiom, (! [A:$tType,Kl3:(list @ A),Kl4:(set @ (list @ A)),K:A]: (((((member @ (list @ A)) @ Kl3) @ (((bNF_Greatest_Shift @ A) @ Kl4) @ K)) => (((member @ (list @ A)) @ (((cons @ A) @ K) @ Kl3)) @ Kl4))))).
% 2.78/1.53 thf(fact_240_Succ__Shift, axiom, (! [A:$tType,Kl4:(set @ (list @ A)),K:A,Kl3:(list @ A)]: (((((bNF_Greatest_Succ @ A) @ (((bNF_Greatest_Shift @ A) @ Kl4) @ K)) @ Kl3) = (((bNF_Greatest_Succ @ A) @ Kl4) @ (((cons @ A) @ K) @ Kl3)))))).
% 2.78/1.53 thf(fact_241_Cons__listrel1__Cons, axiom, (! [A:$tType,X:A,Xs:(list @ A),Y:A,Ys2:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((cons @ A) @ X) @ Xs)) @ (((cons @ A) @ Y) @ Ys2))) @ ((listrel1 @ A) @ R3)) = (((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X) @ Y)) @ R3) & (Xs = Ys2)) | ((X = Y) & (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Ys2)) @ ((listrel1 @ A) @ R3)))))))).
% 2.78/1.53 thf(fact_242_listrel1__eq__len, axiom, (! [A:$tType,Xs:(list @ A),Ys2:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Ys2)) @ ((listrel1 @ A) @ R3)) => (((size_size @ (list @ A)) @ Xs) = ((size_size @ (list @ A)) @ Ys2)))))).
% 2.78/1.53 thf(fact_243_listrel1I1, axiom, (! [A:$tType,X:A,Y:A,R3:(set @ ((product_prod @ A) @ A)),Xs:(list @ A)]: (((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X) @ Y)) @ R3) => (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((cons @ A) @ X) @ Xs)) @ (((cons @ A) @ Y) @ Xs))) @ ((listrel1 @ A) @ R3)))))).
% 2.78/1.53 thf(fact_244_Cons__listrel1E1, axiom, (! [A:$tType,X:A,Xs:(list @ A),Ys2:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((cons @ A) @ X) @ Xs)) @ Ys2)) @ ((listrel1 @ A) @ R3)) => ((! [Y3:A]: (((Ys2 = (((cons @ A) @ Y3) @ Xs)) => (~ ((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X) @ Y3)) @ R3)))))) => (~ ((! [Zs:(list @ A)]: (((Ys2 = (((cons @ A) @ X) @ Zs)) => (~ ((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Zs)) @ ((listrel1 @ A) @ R3)))))))))))))).
% 2.78/1.53 thf(fact_245_Cons__listrel1E2, axiom, (! [A:$tType,Xs:(list @ A),Y:A,Ys2:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ (((cons @ A) @ Y) @ Ys2))) @ ((listrel1 @ A) @ R3)) => ((! [X4:A]: (((Xs = (((cons @ A) @ X4) @ Ys2)) => (~ ((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X4) @ Y)) @ R3)))))) => (~ ((! [Zs:(list @ A)]: (((Xs = (((cons @ A) @ Y) @ Zs)) => (~ ((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Zs) @ Ys2)) @ ((listrel1 @ A) @ R3)))))))))))))).
% 2.78/1.53 thf(fact_246_lexord__append__left__rightI, axiom, (! [A:$tType,A2:A,B2:A,R3:(set @ ((product_prod @ A) @ A)),U:(list @ A),X:(list @ A),Y:(list @ A)]: (((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ A2) @ B2)) @ R3) => (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((append @ A) @ U) @ (((cons @ A) @ A2) @ X))) @ (((append @ A) @ U) @ (((cons @ A) @ B2) @ Y)))) @ ((lexord @ A) @ R3)))))).
% 2.78/1.53 thf(fact_247_listrel1I, axiom, (! [A:$tType,X:A,Y:A,R3:(set @ ((product_prod @ A) @ A)),Xs:(list @ A),Us:(list @ A),Vs:(list @ A),Ys2:(list @ A)]: (((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X) @ Y)) @ R3) => ((Xs = (((append @ A) @ Us) @ (((cons @ A) @ X) @ Vs))) => ((Ys2 = (((append @ A) @ Us) @ (((cons @ A) @ Y) @ Vs))) => (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Ys2)) @ ((listrel1 @ A) @ R3)))))))).
% 2.78/1.53 thf(fact_248_append__eq__append__conv, axiom, (! [A:$tType,Xs:(list @ A),Ys2:(list @ A),Us:(list @ A),Vs:(list @ A)]: ((((((size_size @ (list @ A)) @ Xs) = ((size_size @ (list @ A)) @ Ys2)) | (((size_size @ (list @ A)) @ Us) = ((size_size @ (list @ A)) @ Vs))) => (((((append @ A) @ Xs) @ Us) = (((append @ A) @ Ys2) @ Vs)) = ((Xs = Ys2) & (Us = Vs))))))).
% 2.78/1.53 thf(fact_249_length__append, axiom, (! [A:$tType,Xs:(list @ A),Ys2:(list @ A)]: ((((size_size @ (list @ A)) @ (((append @ A) @ Xs) @ Ys2)) = (((plus_plus @ nat) @ ((size_size @ (list @ A)) @ Xs)) @ ((size_size @ (list @ A)) @ Ys2)))))).
% 2.78/1.53 thf(fact_250_size__list__append, axiom, (! [A:$tType,F3:(A > nat),Xs:(list @ A),Ys2:(list @ A)]: (((((size_list @ A) @ F3) @ (((append @ A) @ Xs) @ Ys2)) = (((plus_plus @ nat) @ (((size_list @ A) @ F3) @ Xs)) @ (((size_list @ A) @ F3) @ Ys2)))))).
% 2.78/1.53 thf(fact_251_lexord__sufE, axiom, (! [A:$tType,Xs:(list @ A),Zs2:(list @ A),Ys2:(list @ A),Qs:(list @ A),R3:(set @ ((product_prod @ A) @ A))]: (((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((append @ A) @ Xs) @ Zs2)) @ (((append @ A) @ Ys2) @ Qs))) @ ((lexord @ A) @ R3)) => ((Xs != Ys2) => ((((size_size @ (list @ A)) @ Xs) = ((size_size @ (list @ A)) @ Ys2)) => ((((size_size @ (list @ A)) @ Zs2) = ((size_size @ (list @ A)) @ Qs)) => (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Xs) @ Ys2)) @ ((lexord @ A) @ R3))))))))).
% 2.78/1.53 thf(fact_252_lex__append__leftD, axiom, (! [A:$tType,R3:(set @ ((product_prod @ A) @ A)),Xs:(list @ A),Ys2:(list @ A),Zs2:(list @ A)]: (((! [X4:A]: ((~ ((((member @ ((product_prod @ A) @ A)) @ ((((product_Pair @ A) @ A) @ X4) @ X4)) @ R3))))) => ((((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ (((append @ A) @ Xs) @ Ys2)) @ (((append @ A) @ Xs) @ Zs2))) @ ((lex @ A) @ R3)) => (((member @ ((product_prod @ (list @ A)) @ (list @ A))) @ ((((product_Pair @ (list @ A)) @ (list @ A)) @ Ys2) @ Zs2)) @ ((lex @ A) @ R3))))))).
% 2.78/1.53 thf(tcon_Com_Ocom___Nat_Osize, axiom, (size @ com)).
% 2.78/1.53 thf(tcon_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct, axiom, (semiri456707255roduct @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Divides_Ounique__euclidean__semiring__numeral, axiom, (unique1598680935umeral @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add, axiom, (ordere779506340up_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add, axiom, (linord219039673up_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Ocancel__comm__monoid__add, axiom, (cancel1352612707id_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Ocancel__semigroup__add, axiom, (cancel_semigroup_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Oab__semigroup__add, axiom, (ab_semigroup_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Ocomm__monoid__add, axiom, (comm_monoid_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Osemigroup__add, axiom, (semigroup_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Omonoid__add, axiom, (monoid_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Ogroup__add, axiom, (group_add @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Num_Oneg__numeral, axiom, (neg_numeral @ int)).
% 2.78/1.53 thf(tcon_Int_Oint___Groups_Ozero, axiom, (zero @ int)).
% 2.78/1.53 thf(tcon_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct_1, axiom, (semiri456707255roduct @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Divides_Ounique__euclidean__semiring__numeral_2, axiom, (unique1598680935umeral @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add, axiom, (canoni770627133id_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add_3, axiom, (ordere779506340up_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Ocancel__comm__monoid__add_4, axiom, (cancel1352612707id_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Ocancel__semigroup__add_5, axiom, (cancel_semigroup_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Oab__semigroup__add_6, axiom, (ab_semigroup_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Ocomm__monoid__add_7, axiom, (comm_monoid_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Osemigroup__add_8, axiom, (semigroup_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Omonoid__add_9, axiom, (monoid_add @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Groups_Ozero_10, axiom, (zero @ nat)).
% 2.78/1.53 thf(tcon_Nat_Onat___Nat_Osize_11, axiom, (size @ nat)).
% 2.78/1.53 thf(tcon_AExp_Oaexp___Nat_Osize_12, axiom, (size @ aexp)).
% 2.78/1.53 thf(tcon_BExp_Obexp___Nat_Osize_13, axiom, (size @ bexp)).
% 2.78/1.53 thf(tcon_List_Olist___Nat_Osize_14, axiom, (! [A8:$tType]: ((size @ (list @ A8))))).
% 2.78/1.53 thf(tcon_String_Ochar___Nat_Osize_15, axiom, (size @ char)).
% 2.78/1.53 thf(tcon_Sum__Type_Osum___Nat_Osize_16, axiom, (! [A8:$tType,A9:$tType]: ((size @ ((sum_sum @ A8) @ A9))))).
% 2.78/1.53 thf(tcon_Option_Ooption___Nat_Osize_17, axiom, (! [A8:$tType]: ((size @ (option @ A8))))).
% 2.78/1.53 thf(tcon_Typerep_Otyperep___Nat_Osize_18, axiom, (size @ typerep)).
% 2.78/1.53 thf(tcon_Product__Type_Oprod___Nat_Osize_19, axiom, (! [A8:$tType,A9:$tType]: ((size @ ((product_prod @ A8) @ A9))))).
% 2.78/1.53 thf(tcon_Record_Otuple__isomorphism___Nat_Osize_20, axiom, (! [A8:$tType,A9:$tType,A10:$tType]: ((size @ (((tuple_isomorphism @ A8) @ A9) @ A10))))).
% 2.78/1.53 thf(conj_0, conjecture, (? [S6:((list @ char) > int),S8:((list @ char) > int)]: (((((((((relati1010904253t_back @ ((list @ char) > int)) @ p) @ b) @ c) @ (suc @ ka)) @ S6) @ S8) & (((bval @ b) @ S6) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c) @ S6)) @ ta) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ c2) @ S8)) @ t_a))))))).
% 2.78/1.53 % SZS output end ListOfTHF for /export/starexec/sandbox/tmp/tmp.zzX3bhuTj3/DTF2DTF18316.p
% 2.78/1.53 ------------------------
% 2.78/1.56 ---- Cleaned THF ---
% 2.78/1.56 thf(ty_t_Record_Otuple__isomorphism,type,
% 2.78/1.56 tuple_isomorphism: $tType > $tType > $tType > $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Product__Type_Oprod,type,
% 2.78/1.56 product_prod: $tType > $tType > $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Typerep_Otyperep,type,
% 2.78/1.56 typerep: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_String_Oliteral,type,
% 2.78/1.56 literal: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Sum__Type_Osum,type,
% 2.78/1.56 sum_sum: $tType > $tType > $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Option_Ooption,type,
% 2.78/1.56 option: $tType > $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_String_Ochar,type,
% 2.78/1.56 char: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_List_Olist,type,
% 2.78/1.56 list: $tType > $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_BExp_Obexp,type,
% 2.78/1.56 bexp: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_AExp_Oaexp,type,
% 2.78/1.56 aexp: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Set_Oset,type,
% 2.78/1.56 set: $tType > $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Nat_Onat,type,
% 2.78/1.56 nat: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Int_Oint,type,
% 2.78/1.56 int: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(ty_t_Com_Ocom,type,
% 2.78/1.56 com: $tType ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_HOL_Otype,type,
% 2.78/1.56 type:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Nat_Osize,type,
% 2.78/1.56 size:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Ozero,type,
% 2.78/1.56 zero:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Num_Oneg__numeral,type,
% 2.78/1.56 neg_numeral:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Ogroup__add,type,
% 2.78/1.56 group_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Omonoid__add,type,
% 2.78/1.56 monoid_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Osemigroup__add,type,
% 2.78/1.56 semigroup_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Ocomm__monoid__add,type,
% 2.78/1.56 comm_monoid_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Oab__semigroup__add,type,
% 2.78/1.56 ab_semigroup_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Ocancel__semigroup__add,type,
% 2.78/1.56 cancel_semigroup_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Ocancel__comm__monoid__add,type,
% 2.78/1.56 cancel1352612707id_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Olinordered__ab__group__add,type,
% 2.78/1.56 linord219039673up_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Oordered__ab__semigroup__add,type,
% 2.78/1.56 ordere779506340up_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
% 2.78/1.56 canoni770627133id_add:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Divides_Ounique__euclidean__semiring__numeral,type,
% 2.78/1.56 unique1598680935umeral:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,type,
% 2.78/1.56 semiri456707255roduct:
% 2.78/1.56 !>[A: $tType] : $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BExp_Obval,type,
% 2.78/1.56 bval: bexp > ( ( list @ char ) > int ) > $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BNF__Greatest__Fixpoint_OShift,type,
% 2.78/1.56 bNF_Greatest_Shift:
% 2.78/1.56 !>[A: $tType] : ( ( set @ ( list @ A ) ) > A > ( set @ ( list @ A ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BNF__Greatest__Fixpoint_OSucc,type,
% 2.78/1.56 bNF_Greatest_Succ:
% 2.78/1.56 !>[A: $tType] : ( ( set @ ( list @ A ) ) > ( list @ A ) > ( set @ A ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BNF__Greatest__Fixpoint_Oimage2,type,
% 2.78/1.56 bNF_Greatest_image2:
% 2.78/1.56 !>[C: $tType,A: $tType,B: $tType] : ( ( set @ C ) > ( C > A ) > ( C > B ) > ( set @ ( product_prod @ A @ B ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BNF__Greatest__Fixpoint_Oimage2p,type,
% 2.78/1.56 bNF_Greatest_image2p:
% 2.78/1.56 !>[C: $tType,A: $tType,D: $tType,B: $tType] : ( ( C > A ) > ( D > B ) > ( C > D > $o ) > A > B > $o ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BNF__Greatest__Fixpoint_OrelImage,type,
% 2.78/1.56 bNF_Gr1317331620lImage:
% 2.78/1.56 !>[B: $tType,A: $tType] : ( ( set @ ( product_prod @ B @ B ) ) > ( B > A ) > ( set @ ( product_prod @ A @ A ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BNF__Greatest__Fixpoint_OrelInvImage,type,
% 2.78/1.56 bNF_Gr2107612801vImage:
% 2.78/1.56 !>[A: $tType,B: $tType] : ( ( set @ A ) > ( set @ ( product_prod @ B @ B ) ) > ( A > B ) > ( set @ ( product_prod @ A @ A ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_BNF__Greatest__Fixpoint_Oshift,type,
% 2.78/1.56 bNF_Greatest_shift:
% 2.78/1.56 !>[A: $tType,B: $tType] : ( ( ( list @ A ) > B ) > A > ( list @ A ) > B ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Basic__BNF__LFPs_Osum_Osize__sum,type,
% 2.78/1.56 basic_BNF_size_sum:
% 2.78/1.56 !>[A: $tType,B: $tType] : ( ( A > nat ) > ( B > nat ) > ( sum_sum @ A @ B ) > nat ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Big__Step_Obig__step,type,
% 2.78/1.56 big_big_step: ( product_prod @ com @ ( ( list @ char ) > int ) ) > ( ( list @ char ) > int ) > $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Com_Ocom_OAssign,type,
% 2.78/1.56 assign: ( list @ char ) > aexp > com ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Com_Ocom_OIf,type,
% 2.78/1.56 if: bexp > com > com > com ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Com_Ocom_OSKIP,type,
% 2.78/1.56 skip: com ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Com_Ocom_OSeq,type,
% 2.78/1.56 seq: com > com > com ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Com_Ocom_OWhile,type,
% 2.78/1.56 while: bexp > com > com ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Com_Ocom_Osize__com,type,
% 2.78/1.56 size_com: com > nat ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Divides_Ounique__euclidean__semiring__numeral__class_Odivides__aux,type,
% 2.78/1.56 unique455577585es_aux:
% 2.78/1.56 !>[A: $tType] : ( ( product_prod @ A @ A ) > $o ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Groups_Oplus__class_Oplus,type,
% 2.78/1.56 plus_plus:
% 2.78/1.56 !>[A: $tType] : ( A > A > A ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Groups_Ozero__class_Ozero,type,
% 2.78/1.56 zero_zero:
% 2.78/1.56 !>[A: $tType] : A ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Oappend,type,
% 2.78/1.56 append:
% 2.78/1.56 !>[A: $tType] : ( ( list @ A ) > ( list @ A ) > ( list @ A ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Ogen__length,type,
% 2.78/1.56 gen_length:
% 2.78/1.56 !>[A: $tType] : ( nat > ( list @ A ) > nat ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Olex,type,
% 2.78/1.56 lex:
% 2.78/1.56 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Olexn,type,
% 2.78/1.56 lexn:
% 2.78/1.56 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > nat > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Olexord,type,
% 2.78/1.56 lexord:
% 2.78/1.56 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Olist_OCons,type,
% 2.78/1.56 cons:
% 2.78/1.56 !>[A: $tType] : ( A > ( list @ A ) > ( list @ A ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Olist_Osize__list,type,
% 2.78/1.56 size_list:
% 2.78/1.56 !>[A: $tType] : ( ( A > nat ) > ( list @ A ) > nat ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Olistrel1,type,
% 2.78/1.56 listrel1:
% 2.78/1.56 !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Oset__Cons,type,
% 2.78/1.56 set_Cons:
% 2.78/1.56 !>[A: $tType] : ( ( set @ A ) > ( set @ ( list @ A ) ) > ( set @ ( list @ A ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_List_Osplice,type,
% 2.78/1.56 splice:
% 2.78/1.56 !>[A: $tType] : ( ( list @ A ) > ( list @ A ) > ( list @ A ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Nat_OSuc,type,
% 2.78/1.56 suc: nat > nat ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Nat_Osize__class_Osize,type,
% 2.78/1.56 size_size:
% 2.78/1.56 !>[A: $tType] : ( A > nat ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Option_Ooption_ONone,type,
% 2.78/1.56 none:
% 2.78/1.56 !>[A: $tType] : ( option @ A ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Option_Ooption_OSome,type,
% 2.78/1.56 some:
% 2.78/1.56 !>[A: $tType] : ( A > ( option @ A ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Option_Ooption_Ocase__option,type,
% 2.78/1.56 case_option:
% 2.78/1.56 !>[B: $tType,A: $tType] : ( B > ( A > B ) > ( option @ A ) > B ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Option_Ooption_Osize__option,type,
% 2.78/1.56 size_option:
% 2.78/1.56 !>[A: $tType] : ( ( A > nat ) > ( option @ A ) > nat ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Product__Type_OPair,type,
% 2.78/1.56 product_Pair:
% 2.78/1.56 !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Product__Type_Ointernal__case__prod,type,
% 2.78/1.56 produc2004651681e_prod:
% 2.78/1.56 !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
% 2.78/1.56 product_rec_prod:
% 2.78/1.56 !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Record_Otuple__isomorphism_OTuple__Isomorphism,type,
% 2.78/1.56 tuple_742722141rphism:
% 2.78/1.56 !>[A: $tType,B: $tType,C: $tType] : ( ( A > ( product_prod @ B @ C ) ) > ( ( product_prod @ B @ C ) > A ) > ( tuple_isomorphism @ A @ B @ C ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Record_Otuple__isomorphism_Osize__tuple__isomorphism,type,
% 2.78/1.56 tuple_1907371454rphism:
% 2.78/1.56 !>[A: $tType,B: $tType,C: $tType] : ( ( A > nat ) > ( B > nat ) > ( C > nat ) > ( tuple_isomorphism @ A @ B @ C ) > nat ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oflip,type,
% 2.78/1.56 relati1716060877e_flip: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oget__back,type,
% 2.78/1.56 relati1010904253t_back:
% 2.78/1.56 !>[A: $tType] : ( ( ( ( list @ char ) > int ) > A > $o ) > bexp > com > nat > ( ( list @ char ) > int ) > A > $o ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__hoare,type,
% 2.78/1.56 relati1493963588_hoare: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__valid,type,
% 2.78/1.56 relati167478067_valid: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Set_OCollect,type,
% 2.78/1.56 collect:
% 2.78/1.56 !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Sum__Type_OInl,type,
% 2.78/1.56 sum_Inl:
% 2.78/1.56 !>[A: $tType,B: $tType] : ( A > ( sum_sum @ A @ B ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Sum__Type_OInr,type,
% 2.78/1.56 sum_Inr:
% 2.78/1.56 !>[B: $tType,A: $tType] : ( B > ( sum_sum @ A @ B ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Typerep_Otyperep_OTyperep,type,
% 2.78/1.56 typerep2: literal > ( list @ typerep ) > typerep ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_Typerep_Otyperep_Osize__typerep,type,
% 2.78/1.56 size_typerep: typerep > nat ).
% 2.78/1.56
% 2.78/1.56 thf(sy_c_member,type,
% 2.78/1.56 member:
% 2.78/1.56 !>[A: $tType] : ( A > ( set @ A ) > $o ) ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_P,type,
% 2.78/1.56 p: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_Q,type,
% 2.78/1.56 q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_b,type,
% 2.78/1.56 b: bexp ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_c,type,
% 2.78/1.56 c: com ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_c_H,type,
% 2.78/1.56 c2: com ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_k,type,
% 2.78/1.56 k: nat ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_ka____,type,
% 2.78/1.56 ka: nat ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_s_H____,type,
% 2.78/1.56 s: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_s_Ha____,type,
% 2.78/1.56 s_a: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_s____,type,
% 2.78/1.56 s2: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_sa____,type,
% 2.78/1.56 sa: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_t_H____,type,
% 2.78/1.56 t: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_t_Ha____,type,
% 2.78/1.56 t_a: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_t____,type,
% 2.78/1.56 t2: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_ta____,type,
% 2.78/1.56 ta: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_u____,type,
% 2.78/1.56 u: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(sy_v_ua____,type,
% 2.78/1.56 ua: ( list @ char ) > int ).
% 2.78/1.56
% 2.78/1.56 thf(fact_0_Suc_Oprems_I6_J,axiom,
% 2.78/1.56 bval @ b @ sa ).
% 2.78/1.56
% 2.78/1.56 thf(fact_1__092_060open_062bval_Ab_As_____092_060close_062,axiom,
% 2.78/1.56 bval @ b @ s2 ).
% 2.78/1.56
% 2.78/1.56 thf(fact_2_Suc_Oprems_I3_J,axiom,
% 2.78/1.56 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ sa ) @ ta ).
% 2.78/1.56
% 2.78/1.56 thf(fact_3_Suc_Oprems_I4_J,axiom,
% 2.78/1.56 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ s_a ) @ t_a ).
% 2.78/1.56
% 2.78/1.56 thf(fact_4_Suc_Oprems_I7_J,axiom,
% 2.78/1.56 relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ( suc @ ka ) @ sa @ s_a ).
% 2.78/1.56
% 2.78/1.56 thf(fact_5__092_060open_062_Ic_H_M_As_H_____J_A_092_060Rightarrow_062_At_H_____092_060close_062,axiom,
% 2.78/1.56 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ s ) @ t ).
% 2.78/1.56
% 2.78/1.56 thf(fact_6__092_060open_062_Ic_M_As_____J_A_092_060Rightarrow_062_At_____092_060close_062,axiom,
% 2.78/1.56 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ s2 ) @ t2 ).
% 2.78/1.56
% 2.78/1.56 thf(fact_7_Suc_Oprems_I5_J,axiom,
% 2.78/1.56 q @ ua @ t_a ).
% 2.78/1.56
% 2.78/1.56 thf(fact_8__092_060open_062get__back_AP_Ab_Ac_Ak_As_____As_H_____092_060close_062,axiom,
% 2.78/1.56 relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ k @ s2 @ s ).
% 2.78/1.56
% 2.78/1.56 thf(fact_9_Suc_Oprems_I2_J,axiom,
% 2.78/1.56 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ b @ c ) @ ta ) @ ua ).
% 2.78/1.56
% 2.78/1.56 thf(fact_10__092_060open_062_IWHILE_Ab_ADO_Ac_M_At_____J_A_092_060Rightarrow_062_Au_____092_060close_062,axiom,
% 2.78/1.56 big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ b @ c ) @ t2 ) @ u ).
% 2.78/1.56
% 2.78/1.56 thf(fact_11_Suc_Oprems_I1_J,axiom,
% 2.78/1.56 relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ( suc @ ka ) ) @ ( while @ b @ c ) @ c2 @ q ).
% 2.78/1.56
% 2.78/1.56 thf(fact_12_nat_Oinject,axiom,
% 2.78/1.56 ! [X2: nat,Y2: nat] :
% 2.78/1.56 ( ( ( suc @ X2 )
% 2.78/1.56 = ( suc @ Y2 ) )
% 2.78/1.56 = ( X2 = Y2 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_13_old_Onat_Oinject,axiom,
% 2.78/1.56 ! [Nat: nat,Nat2: nat] :
% 2.78/1.56 ( ( ( suc @ Nat )
% 2.78/1.56 = ( suc @ Nat2 ) )
% 2.78/1.56 = ( Nat = Nat2 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_14_prod_Oinject,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y2: B] :
% 2.78/1.56 ( ( ( product_Pair @ A @ B @ X1 @ X2 )
% 2.78/1.56 = ( product_Pair @ A @ B @ Y1 @ Y2 ) )
% 2.78/1.56 = ( ( X1 = Y1 )
% 2.78/1.56 & ( X2 = Y2 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_15_old_Oprod_Oinject,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 2.78/1.56 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 2.78/1.56 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 2.78/1.56 = ( ( A2 = A3 )
% 2.78/1.56 & ( B2 = B3 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_16_Suc_OIH,axiom,
% 2.78/1.56 ! [T2: ( list @ char ) > int,U: ( list @ char ) > int,S: ( list @ char ) > int,S2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 2.78/1.56 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ka ) @ ( while @ b @ c ) @ c2 @ q )
% 2.78/1.56 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ b @ c ) @ T2 ) @ U )
% 2.78/1.56 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ S ) @ T2 )
% 2.78/1.56 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ S2 ) @ T3 )
% 2.78/1.56 => ( ( q @ U @ T3 )
% 2.78/1.56 => ( ( bval @ b @ S )
% 2.78/1.56 => ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ka @ S @ S2 )
% 2.78/1.56 => ? [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.56 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ka @ S3 @ S4 )
% 2.78/1.56 & ( bval @ b @ S3 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ S3 ) @ T2 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ S4 ) @ T3 ) ) ) ) ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_17_sim__sym,axiom,
% 2.78/1.56 ! [C2: com,C3: com] :
% 2.78/1.56 ( ( ! [S5: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T4 ) ) )
% 2.78/1.56 = ( ! [S5: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T4 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_18_sim__refl,axiom,
% 2.78/1.56 ! [C2: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_19__092_060open_062Q_Au_____At_H_____092_060close_062,axiom,
% 2.78/1.56 q @ u @ t ).
% 2.78/1.56
% 2.78/1.56 thf(fact_20_disj__ir__valid,axiom,
% 2.78/1.56 ! [P_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.56 ( ( relati167478067_valid @ P_1 @ C2 @ C3 @ Q_1 )
% 2.78/1.56 => ( ( relati167478067_valid @ P_2 @ C2 @ C3 @ Q_2 )
% 2.78/1.56 => ( relati167478067_valid
% 2.78/1.56 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.56 ( ( P_1 @ S5 @ S7 )
% 2.78/1.56 | ( P_2 @ S5 @ S7 ) )
% 2.78/1.56 @ C2
% 2.78/1.56 @ C3
% 2.78/1.56 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.56 ( ( Q_1 @ T4 @ T6 )
% 2.78/1.56 | ( Q_2 @ T4 @ T6 ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_21__092_060open_062ir__valid_A_Iget__back_AP_Ab_Ac_Ak_J_A_IWHILE_Ab_ADO_Ac_J_Ac_H_AQ_092_060close_062,axiom,
% 2.78/1.56 relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ k ) @ ( while @ b @ c ) @ c2 @ q ).
% 2.78/1.56
% 2.78/1.56 thf(fact_22_conseq__ir__valid,axiom,
% 2.78/1.56 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.56 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 2.78/1.56 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.56 ( ( P @ S3 @ S4 )
% 2.78/1.56 => ( P2 @ S3 @ S4 ) )
% 2.78/1.56 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.56 ( ( Q2 @ S3 @ S4 )
% 2.78/1.56 => ( Q @ S3 @ S4 ) )
% 2.78/1.56 => ( relati167478067_valid @ P2 @ C2 @ C3 @ Q2 ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_23_ir__valid__get__back,axiom,
% 2.78/1.56 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,K: nat,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.56 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 2.78/1.56 => ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_24_sim__while__cong__aux,axiom,
% 2.78/1.56 ! [B2: bexp,C2: com,S: ( list @ char ) > int,T2: ( list @ char ) > int,C3: com] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S ) @ T2 )
% 2.78/1.56 => ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T7 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 ) )
% 2.78/1.56 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S ) @ T2 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_25_sim__while__cong,axiom,
% 2.78/1.56 ! [C2: com,C3: com,B2: bexp] :
% 2.78/1.56 ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T7 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 ) )
% 2.78/1.56 => ! [S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S6 ) @ T5 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S6 ) @ T5 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_26_ir__valid__def,axiom,
% 2.78/1.56 ( relati167478067_valid
% 2.78/1.56 = ( ^ [P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.56 ! [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.56 ( ( Q3 @ T4 @ T6 )
% 2.78/1.56 => ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.56 ( ( P3 @ S5 @ S7 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C4 @ S5 ) @ T4 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C5 @ S7 ) @ T6 ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_27_WhileFalse,axiom,
% 2.78/1.56 ! [B2: bexp,S: ( list @ char ) > int,C2: com] :
% 2.78/1.56 ( ~ ( bval @ B2 @ S )
% 2.78/1.56 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S ) @ S ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_28_WhileTrue,axiom,
% 2.78/1.56 ! [B2: bexp,S_1: ( list @ char ) > int,C2: com,S_2: ( list @ char ) > int,S_3: ( list @ char ) > int] :
% 2.78/1.56 ( ( bval @ B2 @ S_1 )
% 2.78/1.56 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S_1 ) @ S_2 )
% 2.78/1.56 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_2 ) @ S_3 )
% 2.78/1.56 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_1 ) @ S_3 ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_29_WhileE,axiom,
% 2.78/1.56 ! [B2: bexp,C2: com,S: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S ) @ T2 )
% 2.78/1.56 => ( ( ( T2 = S )
% 2.78/1.56 => ( bval @ B2 @ S ) )
% 2.78/1.56 => ~ ( ( bval @ B2 @ S )
% 2.78/1.56 => ! [S_22: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ S_22 )
% 2.78/1.56 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_22 ) @ T2 ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_30_old_Oprod_Oinducts,axiom,
% 2.78/1.56 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
% 2.78/1.56 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 2.78/1.56 => ( P @ Prod ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_31_old_Oprod_Oexhaust,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
% 2.78/1.56 ~ ! [A4: A,B4: B] :
% 2.78/1.56 ( Y
% 2.78/1.56 != ( product_Pair @ A @ B @ A4 @ B4 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_32_prod__induct7,axiom,
% 2.78/1.56 ! [G: $tType,F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
% 2.78/1.56 ( ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F,G2: G] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E2 @ ( product_Pair @ F @ G @ F2 @ G2 ) ) ) ) ) ) )
% 2.78/1.56 => ( P @ X ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_33_prod__induct6,axiom,
% 2.78/1.56 ! [F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
% 2.78/1.56 ( ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E2 @ F2 ) ) ) ) ) )
% 2.78/1.56 => ( P @ X ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_34_prod__induct5,axiom,
% 2.78/1.56 ! [E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
% 2.78/1.56 ( ! [A4: A,B4: B,C6: C,D2: D,E2: E] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C6 @ ( product_Pair @ D @ E @ D2 @ E2 ) ) ) ) )
% 2.78/1.56 => ( P @ X ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_35_prod__induct4,axiom,
% 2.78/1.56 ! [D: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
% 2.78/1.56 ( ! [A4: A,B4: B,C6: C,D2: D] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C6 @ D2 ) ) ) )
% 2.78/1.56 => ( P @ X ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_36_prod__induct3,axiom,
% 2.78/1.56 ! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
% 2.78/1.56 ( ! [A4: A,B4: B,C6: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C6 ) ) )
% 2.78/1.56 => ( P @ X ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_37_prod__cases7,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,G: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
% 2.78/1.56 ~ ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F,G2: G] :
% 2.78/1.56 ( Y
% 2.78/1.56 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E2 @ ( product_Pair @ F @ G @ F2 @ G2 ) ) ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_38_prod__cases6,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
% 2.78/1.56 ~ ! [A4: A,B4: B,C6: C,D2: D,E2: E,F2: F] :
% 2.78/1.56 ( Y
% 2.78/1.56 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C6 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E2 @ F2 ) ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_39_prod__cases5,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
% 2.78/1.56 ~ ! [A4: A,B4: B,C6: C,D2: D,E2: E] :
% 2.78/1.56 ( Y
% 2.78/1.56 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C6 @ ( product_Pair @ D @ E @ D2 @ E2 ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_40_prod__cases4,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,C: $tType,D: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
% 2.78/1.56 ~ ! [A4: A,B4: B,C6: C,D2: D] :
% 2.78/1.56 ( Y
% 2.78/1.56 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B4 @ ( product_Pair @ C @ D @ C6 @ D2 ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_41_prod__cases3,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
% 2.78/1.56 ~ ! [A4: A,B4: B,C6: C] :
% 2.78/1.56 ( Y
% 2.78/1.56 != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C6 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_42_Pair__inject,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 2.78/1.56 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 2.78/1.56 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 2.78/1.56 => ~ ( ( A2 = A3 )
% 2.78/1.56 => ( B2 != B3 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_43_prod__cases,axiom,
% 2.78/1.56 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P4: product_prod @ A @ B] :
% 2.78/1.56 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 2.78/1.56 => ( P @ P4 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_44_mem__Collect__eq,axiom,
% 2.78/1.56 ! [A: $tType,A2: A,P: A > $o] :
% 2.78/1.56 ( ( member @ A @ A2 @ ( collect @ A @ P ) )
% 2.78/1.56 = ( P @ A2 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_45_Collect__mem__eq,axiom,
% 2.78/1.56 ! [A: $tType,A5: set @ A] :
% 2.78/1.56 ( ( collect @ A
% 2.78/1.56 @ ^ [X3: A] : ( member @ A @ X3 @ A5 ) )
% 2.78/1.56 = A5 ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_46_Collect__cong,axiom,
% 2.78/1.56 ! [A: $tType,P: A > $o,Q: A > $o] :
% 2.78/1.56 ( ! [X4: A] :
% 2.78/1.56 ( ( P @ X4 )
% 2.78/1.56 = ( Q @ X4 ) )
% 2.78/1.56 => ( ( collect @ A @ P )
% 2.78/1.56 = ( collect @ A @ Q ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_47_ext,axiom,
% 2.78/1.56 ! [B: $tType,A: $tType,F3: A > B,G3: A > B] :
% 2.78/1.56 ( ! [X4: A] :
% 2.78/1.56 ( ( F3 @ X4 )
% 2.78/1.56 = ( G3 @ X4 ) )
% 2.78/1.56 => ( F3 = G3 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_48_surj__pair,axiom,
% 2.78/1.56 ! [A: $tType,B: $tType,P4: product_prod @ A @ B] :
% 2.78/1.56 ? [X4: A,Y3: B] :
% 2.78/1.56 ( P4
% 2.78/1.56 = ( product_Pair @ A @ B @ X4 @ Y3 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_49_n__not__Suc__n,axiom,
% 2.78/1.56 ! [N: nat] :
% 2.78/1.56 ( N
% 2.78/1.56 != ( suc @ N ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_50_Suc__inject,axiom,
% 2.78/1.56 ! [X: nat,Y: nat] :
% 2.78/1.56 ( ( ( suc @ X )
% 2.78/1.56 = ( suc @ Y ) )
% 2.78/1.56 => ( X = Y ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_51_big__step__determ,axiom,
% 2.78/1.56 ! [C2: com,S: ( list @ char ) > int,T2: ( list @ char ) > int,U: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T2 )
% 2.78/1.56 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ U )
% 2.78/1.56 => ( U = T2 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_52_sim__trans,axiom,
% 2.78/1.56 ! [C2: com,C3: com,C7: com] :
% 2.78/1.56 ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T7 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 ) )
% 2.78/1.56 => ( ! [S3: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T7 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C7 @ S3 ) @ T7 ) )
% 2.78/1.56 => ! [S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 )
% 2.78/1.56 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C7 @ S6 ) @ T5 ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_53_old_Oprod_Orec,axiom,
% 2.78/1.56 ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A2: A,B2: B] :
% 2.78/1.56 ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 2.78/1.56 = ( F1 @ A2 @ B2 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_54_com_Oinject_I4_J,axiom,
% 2.78/1.56 ! [X51: bexp,X52: com,Y51: bexp,Y52: com] :
% 2.78/1.56 ( ( ( while @ X51 @ X52 )
% 2.78/1.56 = ( while @ Y51 @ Y52 ) )
% 2.78/1.56 = ( ( X51 = Y51 )
% 2.78/1.56 & ( X52 = Y52 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_55_While__False__ir__valid,axiom,
% 2.78/1.56 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 2.78/1.56 ( ( relati167478067_valid
% 2.78/1.56 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.56 ( ( P @ S5 @ S7 )
% 2.78/1.56 & ~ ( bval @ B2 @ S5 ) )
% 2.78/1.56 @ skip
% 2.78/1.56 @ C3
% 2.78/1.56 @ Q )
% 2.78/1.56 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_56_While__True__ir__valid,axiom,
% 2.78/1.56 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.56 ( ( relati167478067_valid
% 2.78/1.56 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.56 ( ( P @ S5 @ S7 )
% 2.78/1.56 & ( bval @ B2 @ S5 ) )
% 2.78/1.56 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 2.78/1.56 @ C3
% 2.78/1.56 @ Q )
% 2.78/1.56 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_57_get__back_Osimps_I2_J,axiom,
% 2.78/1.56 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com,N: nat] :
% 2.78/1.56 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( suc @ N ) )
% 2.78/1.56 = ( ^ [T4: ( list @ char ) > int,T6: A] :
% 2.78/1.56 ? [S5: ( list @ char ) > int] :
% 2.78/1.56 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 )
% 2.78/1.56 & ( bval @ B2 @ S5 )
% 2.78/1.56 & ( relati1010904253t_back @ A @ P @ B2 @ C2 @ N @ S5 @ T6 ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_58_Skip__ir__valid,axiom,
% 2.78/1.56 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 2.78/1.56 ( ! [T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 2.78/1.56 ( ( Q @ T7 @ T8 )
% 2.78/1.56 => ? [S8: ( list @ char ) > int] :
% 2.78/1.56 ( ( P @ T7 @ S8 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S8 ) @ T8 ) ) )
% 2.78/1.56 => ( relati167478067_valid @ P @ skip @ C3 @ Q ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_59_While__backwards__frontier__ir__valid_H,axiom,
% 2.78/1.56 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,K: nat,B2: bexp,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 2.78/1.56 ( ! [N2: nat,T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 2.78/1.56 ( ( P @ ( plus_plus @ nat @ K @ ( suc @ N2 ) ) @ T7 @ T8 )
% 2.78/1.56 => ? [S6: ( list @ char ) > int] :
% 2.78/1.56 ( ( P @ ( plus_plus @ nat @ K @ N2 ) @ S6 @ T8 )
% 2.78/1.56 & ( bval @ B2 @ S6 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T7 ) ) )
% 2.78/1.56 => ( ! [T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 2.78/1.56 ( ( Q @ T7 @ T8 )
% 2.78/1.56 => ? [S6: ( list @ char ) > int,S8: ( list @ char ) > int] :
% 2.78/1.56 ( ? [N3: nat] : ( P @ ( plus_plus @ nat @ K @ N3 ) @ S6 @ S8 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S6 ) @ T7 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S8 ) @ T8 ) ) )
% 2.78/1.56 => ( ( Q @ T2 @ T3 )
% 2.78/1.56 => ? [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.56 ( ( P @ K @ S3 @ S4 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S3 ) @ T2 )
% 2.78/1.56 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S4 ) @ T3 ) ) ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_60_sym__ir__valid,axiom,
% 2.78/1.56 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.56 ( ( relati167478067_valid @ ( relati1716060877e_flip @ P ) @ C3 @ C2 @ ( relati1716060877e_flip @ Q ) )
% 2.78/1.56 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_61_pred__equals__eq2,axiom,
% 2.78/1.56 ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S9: set @ ( product_prod @ A @ B )] :
% 2.78/1.56 ( ( ( ^ [X3: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y4 ) @ R ) )
% 2.78/1.56 = ( ^ [X3: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X3 @ Y4 ) @ S9 ) ) )
% 2.78/1.56 = ( R = S9 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_62_internal__case__prod__conv,axiom,
% 2.78/1.56 ! [B: $tType,A: $tType,C: $tType,C2: B > C > A,A2: B,B2: C] :
% 2.78/1.56 ( ( produc2004651681e_prod @ B @ C @ A @ C2 @ ( product_Pair @ B @ C @ A2 @ B2 ) )
% 2.78/1.56 = ( C2 @ A2 @ B2 ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_63_com_Oinject_I2_J,axiom,
% 2.78/1.56 ! [X31: com,X32: com,Y31: com,Y32: com] :
% 2.78/1.56 ( ( ( seq @ X31 @ X32 )
% 2.78/1.56 = ( seq @ Y31 @ Y32 ) )
% 2.78/1.56 = ( ( X31 = Y31 )
% 2.78/1.56 & ( X32 = Y32 ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_64_add__Suc__right,axiom,
% 2.78/1.56 ! [M: nat,N: nat] :
% 2.78/1.56 ( ( plus_plus @ nat @ M @ ( suc @ N ) )
% 2.78/1.56 = ( suc @ ( plus_plus @ nat @ M @ N ) ) ) ).
% 2.78/1.56
% 2.78/1.56 thf(fact_65_Seq__ir__valid,axiom,
% 2.78/1.56 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,D4: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.56 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( ( relati167478067_valid @ Q @ D3 @ D4 @ R )
% 2.78/1.57 => ( relati167478067_valid @ P @ ( seq @ C2 @ D3 ) @ ( seq @ C3 @ D4 ) @ R ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_66_meh__simp,axiom,
% 2.78/1.57 ! [S2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S2 ) @ T3 )
% 2.78/1.57 = ( S2 = T3 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_67_Seq2__ir__valid,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,C3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati167478067_valid @ P @ C2 @ skip @ Q )
% 2.78/1.57 => ( ( relati167478067_valid @ Q @ D3 @ C3 @ R )
% 2.78/1.57 => ( relati167478067_valid @ P @ ( seq @ C2 @ D3 ) @ C3 @ R ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_68_Seq1__ir__valid,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( ( relati167478067_valid @ Q @ D3 @ skip @ R )
% 2.78/1.57 => ( relati167478067_valid @ P @ ( seq @ C2 @ D3 ) @ C3 @ R ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_69_com_Odistinct_I3_J,axiom,
% 2.78/1.57 ! [X31: com,X32: com] :
% 2.78/1.57 ( skip
% 2.78/1.57 != ( seq @ X31 @ X32 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_70_com_Odistinct_I17_J,axiom,
% 2.78/1.57 ! [X31: com,X32: com,X51: bexp,X52: com] :
% 2.78/1.57 ( ( seq @ X31 @ X32 )
% 2.78/1.57 != ( while @ X51 @ X52 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_71_com_Odistinct_I7_J,axiom,
% 2.78/1.57 ! [X51: bexp,X52: com] :
% 2.78/1.57 ( skip
% 2.78/1.57 != ( while @ X51 @ X52 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_72_add__Suc__shift,axiom,
% 2.78/1.57 ! [M: nat,N: nat] :
% 2.78/1.57 ( ( plus_plus @ nat @ ( suc @ M ) @ N )
% 2.78/1.57 = ( plus_plus @ nat @ M @ ( suc @ N ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_73_nat__arith_Osuc1,axiom,
% 2.78/1.57 ! [A5: nat,K: nat,A2: nat] :
% 2.78/1.57 ( ( A5
% 2.78/1.57 = ( plus_plus @ nat @ K @ A2 ) )
% 2.78/1.57 => ( ( suc @ A5 )
% 2.78/1.57 = ( plus_plus @ nat @ K @ ( suc @ A2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_74_add__Suc,axiom,
% 2.78/1.57 ! [M: nat,N: nat] :
% 2.78/1.57 ( ( plus_plus @ nat @ ( suc @ M ) @ N )
% 2.78/1.57 = ( suc @ ( plus_plus @ nat @ M @ N ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_75_ir__valid__Seq1_H,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 2.78/1.57 => ( relati167478067_valid
% 2.78/1.57 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.57 ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S5 ) @ T4 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 2.78/1.57 & ? [U2: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T4 ) @ U2 )
% 2.78/1.57 & ( Q @ U2 @ T6 ) ) )
% 2.78/1.57 @ C22
% 2.78/1.57 @ skip
% 2.78/1.57 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_76_flip__def,axiom,
% 2.78/1.57 ( relati1716060877e_flip
% 2.78/1.57 = ( ^ [P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S5: ( list @ char ) > int,S7: ( list @ char ) > int] : ( P3 @ S7 @ S5 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_77_ir__valid__Seq1,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 2.78/1.57 => ( relati167478067_valid @ P @ C1 @ C3
% 2.78/1.57 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.57 ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S5 ) @ T4 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 2.78/1.57 & ? [U2: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T4 ) @ U2 )
% 2.78/1.57 & ( Q @ U2 @ T6 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_78_SeqE,axiom,
% 2.78/1.57 ! [C1: com,C22: com,S1: ( list @ char ) > int,S32: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ C22 ) @ S1 ) @ S32 )
% 2.78/1.57 => ~ ! [S_22: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S1 ) @ S_22 )
% 2.78/1.57 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S_22 ) @ S32 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_79_Seq__assoc,axiom,
% 2.78/1.57 ! [C1: com,C22: com,C32: com,S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ ( seq @ C1 @ C22 ) @ C32 ) @ S ) @ S2 )
% 2.78/1.57 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ ( seq @ C22 @ C32 ) ) @ S ) @ S2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_80_Seq,axiom,
% 2.78/1.57 ! [C_1: com,S_1: ( list @ char ) > int,S_2: ( list @ char ) > int,C_2: com,S_3: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S_1 ) @ S_2 )
% 2.78/1.57 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S_2 ) @ S_3 )
% 2.78/1.57 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C_1 @ C_2 ) @ S_1 ) @ S_3 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_81_SkipE,axiom,
% 2.78/1.57 ! [S: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S ) @ T2 )
% 2.78/1.57 => ( T2 = S ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_82_Skip,axiom,
% 2.78/1.57 ! [S: ( list @ char ) > int] : ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S ) @ S ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_83_ir__valid__track__history,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 2.78/1.57 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( relati167478067_valid @ P @ C2 @ C3
% 2.78/1.57 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q @ S @ S2 )
% 2.78/1.57 & ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S5 ) @ T4 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_84_ir__valid__While1,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,K: nat,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 2.78/1.57 => ( relati167478067_valid
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K @ S5 @ S7 )
% 2.78/1.57 & ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ C2
% 2.78/1.57 @ skip
% 2.78/1.57 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.57 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) @ T4 @ T6 )
% 2.78/1.57 & ? [U2: ( list @ char ) > int,U3: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ T4 ) @ U2 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ T6 ) @ U3 )
% 2.78/1.57 & ( Q @ U2 @ U3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_85_add__right__cancel,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel_semigroup_add @ A )
% 2.78/1.57 => ! [B2: A,A2: A,C2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ B2 @ A2 )
% 2.78/1.57 = ( plus_plus @ A @ C2 @ A2 ) )
% 2.78/1.57 = ( B2 = C2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_86_add__left__cancel,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel_semigroup_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A,C2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ A2 @ B2 )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ C2 ) )
% 2.78/1.57 = ( B2 = C2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_87_ir__valid__If,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati167478067_valid @ P @ ( if @ B2 @ C1 @ C22 ) @ C3 @ Q )
% 2.78/1.57 => ( ( relati167478067_valid
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ C1
% 2.78/1.57 @ C3
% 2.78/1.57 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q @ T4 @ T6 )
% 2.78/1.57 & ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S5 ) @ T4 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 2.78/1.57 & ( bval @ B2 @ S5 ) ) ) )
% 2.78/1.57 & ( relati167478067_valid
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ~ ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ C22
% 2.78/1.57 @ C3
% 2.78/1.57 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q @ T4 @ T6 )
% 2.78/1.57 & ? [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S5 ) @ T4 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S7 ) @ T6 )
% 2.78/1.57 & ~ ( bval @ B2 @ S5 ) ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_88_while__unfold,axiom,
% 2.78/1.57 ! [B2: bexp,C2: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S6 ) @ T5 )
% 2.78/1.57 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ ( seq @ C2 @ ( while @ B2 @ C2 ) ) @ skip ) @ S6 ) @ T5 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_89_If__True__ir__valid,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_1: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_2: com] :
% 2.78/1.57 ( ( relati167478067_valid
% 2.78/1.57 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ A6 @ C4 )
% 2.78/1.57 & ( bval @ B2 @ A6 ) )
% 2.78/1.57 @ C_1
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_90_If__False__ir__valid,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_1: com] :
% 2.78/1.57 ( ( relati167478067_valid
% 2.78/1.57 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ A6 @ C4 )
% 2.78/1.57 & ~ ( bval @ B2 @ A6 ) )
% 2.78/1.57 @ C_2
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_91_ir__While__True,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_92_com_Oinject_I3_J,axiom,
% 2.78/1.57 ! [X41: bexp,X42: com,X43: com,Y41: bexp,Y42: com,Y43: com] :
% 2.78/1.57 ( ( ( if @ X41 @ X42 @ X43 )
% 2.78/1.57 = ( if @ Y41 @ Y42 @ Y43 ) )
% 2.78/1.57 = ( ( X41 = Y41 )
% 2.78/1.57 & ( X42 = Y42 )
% 2.78/1.57 & ( X43 = Y43 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_93_ir__Skip__Skip,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] : ( relati1493963588_hoare @ P @ skip @ skip @ P ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_94_ir__hoare__Skip__Skip,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ P @ skip @ skip @ Q )
% 2.78/1.57 = ( ! [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q @ S5 @ S7 )
% 2.78/1.57 => ( P @ S5 @ S7 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_95_ir__disj,axiom,
% 2.78/1.57 ! [P_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q_1: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q_2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ P_1 @ C2 @ C3 @ Q_1 )
% 2.78/1.57 => ( ( relati1493963588_hoare @ P_2 @ C2 @ C3 @ Q_2 )
% 2.78/1.57 => ( relati1493963588_hoare
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P_1 @ S5 @ S7 )
% 2.78/1.57 | ( P_2 @ S5 @ S7 ) )
% 2.78/1.57 @ C2
% 2.78/1.57 @ C3
% 2.78/1.57 @ ^ [T4: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q_1 @ T4 @ T6 )
% 2.78/1.57 | ( Q_2 @ T4 @ T6 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_96_ir__pre,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S3 @ S4 )
% 2.78/1.57 => ( P2 @ S3 @ S4 ) )
% 2.78/1.57 => ( relati1493963588_hoare @ P2 @ C2 @ C3 @ Q ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_97_ir__post,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q2 @ S3 @ S4 )
% 2.78/1.57 => ( Q @ S3 @ S4 ) )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ C2 @ C3 @ Q2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_98_ir__conseq,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S3 @ S4 )
% 2.78/1.57 => ( P2 @ S3 @ S4 ) )
% 2.78/1.57 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q2 @ S3 @ S4 )
% 2.78/1.57 => ( Q @ S3 @ S4 ) )
% 2.78/1.57 => ( relati1493963588_hoare @ P2 @ C2 @ C3 @ Q2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_99_ir__If__False,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_1: com] :
% 2.78/1.57 ( ( relati1493963588_hoare
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ~ ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ C_2
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_100_ir__If__True,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C_1: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C_2: com] :
% 2.78/1.57 ( ( relati1493963588_hoare
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ C_1
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_101_soundness,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_102_com_Odistinct_I19_J,axiom,
% 2.78/1.57 ! [X41: bexp,X42: com,X43: com,X51: bexp,X52: com] :
% 2.78/1.57 ( ( if @ X41 @ X42 @ X43 )
% 2.78/1.57 != ( while @ X51 @ X52 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_103_com_Odistinct_I5_J,axiom,
% 2.78/1.57 ! [X41: bexp,X42: com,X43: com] :
% 2.78/1.57 ( skip
% 2.78/1.57 != ( if @ X41 @ X42 @ X43 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_104_com_Odistinct_I15_J,axiom,
% 2.78/1.57 ! [X31: com,X32: com,X41: bexp,X42: com,X43: com] :
% 2.78/1.57 ( ( seq @ X31 @ X32 )
% 2.78/1.57 != ( if @ X41 @ X42 @ X43 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_105_ir__sym,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ ( relati1716060877e_flip @ P ) @ C2 @ C3 @ ( relati1716060877e_flip @ Q ) )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ C3 @ C2 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_106_ir__Seq1,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 2.78/1.57 => ( ( relati1493963588_hoare @ Q @ D3 @ skip @ R )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ ( seq @ C2 @ D3 ) @ C3 @ R ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_107_commute__if,axiom,
% 2.78/1.57 ! [B1: bexp,B22: bexp,C11: com,C12: com,C22: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B1 @ ( if @ B22 @ C11 @ C12 ) @ C22 ) @ S6 ) @ T5 )
% 2.78/1.57 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B22 @ ( if @ B1 @ C11 @ C22 ) @ ( if @ B1 @ C12 @ C22 ) ) @ S6 ) @ T5 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_108_triv__if,axiom,
% 2.78/1.57 ! [B2: bexp,C2: com,S6: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C2 @ C2 ) @ S6 ) @ T5 )
% 2.78/1.57 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S6 ) @ T5 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_109_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( ab_semigroup_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A,C2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_110_add__mono__thms__linordered__semiring_I4_J,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( ordere779506340up_add @ A )
% 2.78/1.57 => ! [I: A,J: A,K: A,L: A] :
% 2.78/1.57 ( ( ( I = J )
% 2.78/1.57 & ( K = L ) )
% 2.78/1.57 => ( ( plus_plus @ A @ I @ K )
% 2.78/1.57 = ( plus_plus @ A @ J @ L ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_111_group__cancel_Oadd1,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( comm_monoid_add @ A )
% 2.78/1.57 => ! [A5: A,K: A,A2: A,B2: A] :
% 2.78/1.57 ( ( A5
% 2.78/1.57 = ( plus_plus @ A @ K @ A2 ) )
% 2.78/1.57 => ( ( plus_plus @ A @ A5 @ B2 )
% 2.78/1.57 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_112_group__cancel_Oadd2,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( comm_monoid_add @ A )
% 2.78/1.57 => ! [B5: A,K: A,B2: A,A2: A] :
% 2.78/1.57 ( ( B5
% 2.78/1.57 = ( plus_plus @ A @ K @ B2 ) )
% 2.78/1.57 => ( ( plus_plus @ A @ A2 @ B5 )
% 2.78/1.57 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_113_add_Oassoc,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( semigroup_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A,C2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_114_add_Oleft__cancel,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( group_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A,C2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ A2 @ B2 )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ C2 ) )
% 2.78/1.57 = ( B2 = C2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_115_add_Oright__cancel,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( group_add @ A )
% 2.78/1.57 => ! [B2: A,A2: A,C2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ B2 @ A2 )
% 2.78/1.57 = ( plus_plus @ A @ C2 @ A2 ) )
% 2.78/1.57 = ( B2 = C2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_116_add_Ocommute,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( ab_semigroup_add @ A )
% 2.78/1.57 => ( ( plus_plus @ A )
% 2.78/1.57 = ( ^ [A6: A,B6: A] : ( plus_plus @ A @ B6 @ A6 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_117_add_Oleft__commute,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( ab_semigroup_add @ A )
% 2.78/1.57 => ! [B2: A,A2: A,C2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ B2 @ ( plus_plus @ A @ A2 @ C2 ) )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_118_add__left__imp__eq,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel_semigroup_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A,C2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ A2 @ B2 )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ C2 ) )
% 2.78/1.57 => ( B2 = C2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_119_add__right__imp__eq,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel_semigroup_add @ A )
% 2.78/1.57 => ! [B2: A,A2: A,C2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ B2 @ A2 )
% 2.78/1.57 = ( plus_plus @ A @ C2 @ A2 ) )
% 2.78/1.57 => ( B2 = C2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_120_ir__Skip,axiom,
% 2.78/1.57 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 2.78/1.57 ( ! [T7: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 2.78/1.57 ( ( Q @ T7 @ T8 )
% 2.78/1.57 => ? [S8: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ T7 @ S8 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S8 ) @ T8 ) ) )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ skip @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_121_IfFalse,axiom,
% 2.78/1.57 ! [B2: bexp,S: ( list @ char ) > int,C_2: com,T2: ( list @ char ) > int,C_1: com] :
% 2.78/1.57 ( ~ ( bval @ B2 @ S )
% 2.78/1.57 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S ) @ T2 )
% 2.78/1.57 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S ) @ T2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_122_IfTrue,axiom,
% 2.78/1.57 ! [B2: bexp,S: ( list @ char ) > int,C_1: com,T2: ( list @ char ) > int,C_2: com] :
% 2.78/1.57 ( ( bval @ B2 @ S )
% 2.78/1.57 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S ) @ T2 )
% 2.78/1.57 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S ) @ T2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_123_IfE,axiom,
% 2.78/1.57 ! [B2: bexp,C1: com,C22: com,S: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 2.78/1.57 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C1 @ C22 ) @ S ) @ T2 )
% 2.78/1.57 => ( ( ( bval @ B2 @ S )
% 2.78/1.57 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T2 ) )
% 2.78/1.57 => ~ ( ~ ( bval @ B2 @ S )
% 2.78/1.57 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S ) @ T2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_124_ir__While__False,axiom,
% 2.78/1.57 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 2.78/1.57 ( ( relati1493963588_hoare
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ S5 @ S7 )
% 2.78/1.57 & ~ ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ skip
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_125_com_Oexhaust,axiom,
% 2.78/1.57 ! [Y: com] :
% 2.78/1.57 ( ( Y != skip )
% 2.78/1.57 => ( ! [X21: list @ char,X22: aexp] :
% 2.78/1.57 ( Y
% 2.78/1.57 != ( assign @ X21 @ X22 ) )
% 2.78/1.57 => ( ! [X312: com,X322: com] :
% 2.78/1.57 ( Y
% 2.78/1.57 != ( seq @ X312 @ X322 ) )
% 2.78/1.57 => ( ! [X412: bexp,X422: com,X432: com] :
% 2.78/1.57 ( Y
% 2.78/1.57 != ( if @ X412 @ X422 @ X432 ) )
% 2.78/1.57 => ~ ! [X512: bexp,X522: com] :
% 2.78/1.57 ( Y
% 2.78/1.57 != ( while @ X512 @ X522 ) ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_126_com_Oinduct,axiom,
% 2.78/1.57 ! [P: com > $o,Com: com] :
% 2.78/1.57 ( ( P @ skip )
% 2.78/1.57 => ( ! [X12: list @ char,X23: aexp] : ( P @ ( assign @ X12 @ X23 ) )
% 2.78/1.57 => ( ! [X12: com,X23: com] :
% 2.78/1.57 ( ( P @ X12 )
% 2.78/1.57 => ( ( P @ X23 )
% 2.78/1.57 => ( P @ ( seq @ X12 @ X23 ) ) ) )
% 2.78/1.57 => ( ! [X12: bexp,X23: com,X33: com] :
% 2.78/1.57 ( ( P @ X23 )
% 2.78/1.57 => ( ( P @ X33 )
% 2.78/1.57 => ( P @ ( if @ X12 @ X23 @ X33 ) ) ) )
% 2.78/1.57 => ( ! [X12: bexp,X23: com] :
% 2.78/1.57 ( ( P @ X23 )
% 2.78/1.57 => ( P @ ( while @ X12 @ X23 ) ) )
% 2.78/1.57 => ( P @ Com ) ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_127_image2__def,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,C: $tType] :
% 2.78/1.57 ( ( bNF_Greatest_image2 @ C @ A @ B )
% 2.78/1.57 = ( ^ [A7: set @ C,F4: C > A,G4: C > B] :
% 2.78/1.57 ( collect @ ( product_prod @ A @ B )
% 2.78/1.57 @ ^ [Uu: product_prod @ A @ B] :
% 2.78/1.57 ? [A6: C] :
% 2.78/1.57 ( ( Uu
% 2.78/1.57 = ( product_Pair @ A @ B @ ( F4 @ A6 ) @ ( G4 @ A6 ) ) )
% 2.78/1.57 & ( member @ C @ A6 @ A7 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_128_While__backwards__frontier__ir__valid,axiom,
% 2.78/1.57 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ! [N2: nat] :
% 2.78/1.57 ( relati167478067_valid
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ N2 @ S5 @ S7 )
% 2.78/1.57 & ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ C2
% 2.78/1.57 @ skip
% 2.78/1.57 @ ( P @ ( suc @ N2 ) ) )
% 2.78/1.57 => ( ( relati167478067_valid
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ? [N4: nat] : ( P @ N4 @ S5 @ S7 )
% 2.78/1.57 @ ( while @ B2 @ C2 )
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati167478067_valid @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_129_is__num__normalize_I1_J,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( neg_numeral @ A )
% 2.78/1.57 => ! [A2: A,B2: A,C2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_130_com_Oinject_I1_J,axiom,
% 2.78/1.57 ! [X212: list @ char,X222: aexp,Y21: list @ char,Y22: aexp] :
% 2.78/1.57 ( ( ( assign @ X212 @ X222 )
% 2.78/1.57 = ( assign @ Y21 @ Y22 ) )
% 2.78/1.57 = ( ( X212 = Y21 )
% 2.78/1.57 & ( X222 = Y22 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_131_add_Oleft__neutral,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( monoid_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 2.78/1.57 = A2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_132_add_Oright__neutral,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( monoid_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 2.78/1.57 = A2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_133_double__zero,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( linord219039673up_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ A2 @ A2 )
% 2.78/1.57 = ( zero_zero @ A ) )
% 2.78/1.57 = ( A2
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_134_double__zero__sym,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( linord219039673up_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( ( zero_zero @ A )
% 2.78/1.57 = ( plus_plus @ A @ A2 @ A2 ) )
% 2.78/1.57 = ( A2
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_135_add__cancel__left__left,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel1352612707id_add @ A )
% 2.78/1.57 => ! [B2: A,A2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ B2 @ A2 )
% 2.78/1.57 = A2 )
% 2.78/1.57 = ( B2
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_136_add__cancel__left__right,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel1352612707id_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ A2 @ B2 )
% 2.78/1.57 = A2 )
% 2.78/1.57 = ( B2
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_137_add__cancel__right__left,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel1352612707id_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A] :
% 2.78/1.57 ( ( A2
% 2.78/1.57 = ( plus_plus @ A @ B2 @ A2 ) )
% 2.78/1.57 = ( B2
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_138_add__cancel__right__right,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel1352612707id_add @ A )
% 2.78/1.57 => ! [A2: A,B2: A] :
% 2.78/1.57 ( ( A2
% 2.78/1.57 = ( plus_plus @ A @ A2 @ B2 ) )
% 2.78/1.57 = ( B2
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_139_add__eq__0__iff__both__eq__0,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( canoni770627133id_add @ A )
% 2.78/1.57 => ! [X: A,Y: A] :
% 2.78/1.57 ( ( ( plus_plus @ A @ X @ Y )
% 2.78/1.57 = ( zero_zero @ A ) )
% 2.78/1.57 = ( ( X
% 2.78/1.57 = ( zero_zero @ A ) )
% 2.78/1.57 & ( Y
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_140_zero__eq__add__iff__both__eq__0,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( canoni770627133id_add @ A )
% 2.78/1.57 => ! [X: A,Y: A] :
% 2.78/1.57 ( ( ( zero_zero @ A )
% 2.78/1.57 = ( plus_plus @ A @ X @ Y ) )
% 2.78/1.57 = ( ( X
% 2.78/1.57 = ( zero_zero @ A ) )
% 2.78/1.57 & ( Y
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_141_add__is__0,axiom,
% 2.78/1.57 ! [M: nat,N: nat] :
% 2.78/1.57 ( ( ( plus_plus @ nat @ M @ N )
% 2.78/1.57 = ( zero_zero @ nat ) )
% 2.78/1.57 = ( ( M
% 2.78/1.57 = ( zero_zero @ nat ) )
% 2.78/1.57 & ( N
% 2.78/1.57 = ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_142_Nat_Oadd__0__right,axiom,
% 2.78/1.57 ! [M: nat] :
% 2.78/1.57 ( ( plus_plus @ nat @ M @ ( zero_zero @ nat ) )
% 2.78/1.57 = M ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_143_zero__reorient,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( zero @ A )
% 2.78/1.57 => ! [X: A] :
% 2.78/1.57 ( ( ( zero_zero @ A )
% 2.78/1.57 = X )
% 2.78/1.57 = ( X
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_144_comm__monoid__add__class_Oadd__0,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( comm_monoid_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 2.78/1.57 = A2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_145_add_Ocomm__neutral,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( comm_monoid_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 2.78/1.57 = A2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_146_add_Ogroup__left__neutral,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( group_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 2.78/1.57 = A2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_147_nat_Odistinct_I1_J,axiom,
% 2.78/1.57 ! [X2: nat] :
% 2.78/1.57 ( ( zero_zero @ nat )
% 2.78/1.57 != ( suc @ X2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_148_old_Onat_Odistinct_I2_J,axiom,
% 2.78/1.57 ! [Nat3: nat] :
% 2.78/1.57 ( ( suc @ Nat3 )
% 2.78/1.57 != ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_149_old_Onat_Odistinct_I1_J,axiom,
% 2.78/1.57 ! [Nat2: nat] :
% 2.78/1.57 ( ( zero_zero @ nat )
% 2.78/1.57 != ( suc @ Nat2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_150_nat_OdiscI,axiom,
% 2.78/1.57 ! [Nat: nat,X2: nat] :
% 2.78/1.57 ( ( Nat
% 2.78/1.57 = ( suc @ X2 ) )
% 2.78/1.57 => ( Nat
% 2.78/1.57 != ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_151_nat__induct,axiom,
% 2.78/1.57 ! [P: nat > $o,N: nat] :
% 2.78/1.57 ( ( P @ ( zero_zero @ nat ) )
% 2.78/1.57 => ( ! [N2: nat] :
% 2.78/1.57 ( ( P @ N2 )
% 2.78/1.57 => ( P @ ( suc @ N2 ) ) )
% 2.78/1.57 => ( P @ N ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_152_diff__induct,axiom,
% 2.78/1.57 ! [P: nat > nat > $o,M: nat,N: nat] :
% 2.78/1.57 ( ! [X4: nat] : ( P @ X4 @ ( zero_zero @ nat ) )
% 2.78/1.57 => ( ! [Y3: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y3 ) )
% 2.78/1.57 => ( ! [X4: nat,Y3: nat] :
% 2.78/1.57 ( ( P @ X4 @ Y3 )
% 2.78/1.57 => ( P @ ( suc @ X4 ) @ ( suc @ Y3 ) ) )
% 2.78/1.57 => ( P @ M @ N ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_153_zero__induct,axiom,
% 2.78/1.57 ! [P: nat > $o,K: nat] :
% 2.78/1.57 ( ( P @ K )
% 2.78/1.57 => ( ! [N2: nat] :
% 2.78/1.57 ( ( P @ ( suc @ N2 ) )
% 2.78/1.57 => ( P @ N2 ) )
% 2.78/1.57 => ( P @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_154_Suc__neq__Zero,axiom,
% 2.78/1.57 ! [M: nat] :
% 2.78/1.57 ( ( suc @ M )
% 2.78/1.57 != ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_155_Zero__neq__Suc,axiom,
% 2.78/1.57 ! [M: nat] :
% 2.78/1.57 ( ( zero_zero @ nat )
% 2.78/1.57 != ( suc @ M ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_156_Zero__not__Suc,axiom,
% 2.78/1.57 ! [M: nat] :
% 2.78/1.57 ( ( zero_zero @ nat )
% 2.78/1.57 != ( suc @ M ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_157_old_Onat_Oexhaust,axiom,
% 2.78/1.57 ! [Y: nat] :
% 2.78/1.57 ( ( Y
% 2.78/1.57 != ( zero_zero @ nat ) )
% 2.78/1.57 => ~ ! [Nat4: nat] :
% 2.78/1.57 ( Y
% 2.78/1.57 != ( suc @ Nat4 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_158_old_Onat_Oinducts,axiom,
% 2.78/1.57 ! [P: nat > $o,Nat: nat] :
% 2.78/1.57 ( ( P @ ( zero_zero @ nat ) )
% 2.78/1.57 => ( ! [Nat4: nat] :
% 2.78/1.57 ( ( P @ Nat4 )
% 2.78/1.57 => ( P @ ( suc @ Nat4 ) ) )
% 2.78/1.57 => ( P @ Nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_159_not0__implies__Suc,axiom,
% 2.78/1.57 ! [N: nat] :
% 2.78/1.57 ( ( N
% 2.78/1.57 != ( zero_zero @ nat ) )
% 2.78/1.57 => ? [M2: nat] :
% 2.78/1.57 ( N
% 2.78/1.57 = ( suc @ M2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_160_plus__nat_Oadd__0,axiom,
% 2.78/1.57 ! [N: nat] :
% 2.78/1.57 ( ( plus_plus @ nat @ ( zero_zero @ nat ) @ N )
% 2.78/1.57 = N ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_161_add__eq__self__zero,axiom,
% 2.78/1.57 ! [M: nat,N: nat] :
% 2.78/1.57 ( ( ( plus_plus @ nat @ M @ N )
% 2.78/1.57 = M )
% 2.78/1.57 => ( N
% 2.78/1.57 = ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_162_image2__eqI,axiom,
% 2.78/1.57 ! [A: $tType,C: $tType,B: $tType,B2: A,F3: B > A,X: B,C2: C,G3: B > C,A5: set @ B] :
% 2.78/1.57 ( ( B2
% 2.78/1.57 = ( F3 @ X ) )
% 2.78/1.57 => ( ( C2
% 2.78/1.57 = ( G3 @ X ) )
% 2.78/1.57 => ( ( member @ B @ X @ A5 )
% 2.78/1.57 => ( member @ ( product_prod @ A @ C ) @ ( product_Pair @ A @ C @ B2 @ C2 ) @ ( bNF_Greatest_image2 @ B @ A @ C @ A5 @ F3 @ G3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_163_com_Odistinct_I13_J,axiom,
% 2.78/1.57 ! [X212: list @ char,X222: aexp,X51: bexp,X52: com] :
% 2.78/1.57 ( ( assign @ X212 @ X222 )
% 2.78/1.57 != ( while @ X51 @ X52 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_164_com_Odistinct_I1_J,axiom,
% 2.78/1.57 ! [X212: list @ char,X222: aexp] :
% 2.78/1.57 ( skip
% 2.78/1.57 != ( assign @ X212 @ X222 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_165_com_Odistinct_I9_J,axiom,
% 2.78/1.57 ! [X212: list @ char,X222: aexp,X31: com,X32: com] :
% 2.78/1.57 ( ( assign @ X212 @ X222 )
% 2.78/1.57 != ( seq @ X31 @ X32 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_166_com_Odistinct_I11_J,axiom,
% 2.78/1.57 ! [X212: list @ char,X222: aexp,X41: bexp,X42: com,X43: com] :
% 2.78/1.57 ( ( assign @ X212 @ X222 )
% 2.78/1.57 != ( if @ X41 @ X42 @ X43 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_167_get__back_Osimps_I1_J,axiom,
% 2.78/1.57 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com] :
% 2.78/1.57 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( zero_zero @ nat ) )
% 2.78/1.57 = P ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_168_one__is__add,axiom,
% 2.78/1.57 ! [M: nat,N: nat] :
% 2.78/1.57 ( ( ( suc @ ( zero_zero @ nat ) )
% 2.78/1.57 = ( plus_plus @ nat @ M @ N ) )
% 2.78/1.57 = ( ( ( M
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) )
% 2.78/1.57 & ( N
% 2.78/1.57 = ( zero_zero @ nat ) ) )
% 2.78/1.57 | ( ( M
% 2.78/1.57 = ( zero_zero @ nat ) )
% 2.78/1.57 & ( N
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_169_add__is__1,axiom,
% 2.78/1.57 ! [M: nat,N: nat] :
% 2.78/1.57 ( ( ( plus_plus @ nat @ M @ N )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) )
% 2.78/1.57 = ( ( ( M
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) )
% 2.78/1.57 & ( N
% 2.78/1.57 = ( zero_zero @ nat ) ) )
% 2.78/1.57 | ( ( M
% 2.78/1.57 = ( zero_zero @ nat ) )
% 2.78/1.57 & ( N
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_170_ir__While__backwards__frontier,axiom,
% 2.78/1.57 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 2.78/1.57 ( ! [N2: nat] :
% 2.78/1.57 ( relati1493963588_hoare
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ( ( P @ N2 @ S5 @ S7 )
% 2.78/1.57 & ( bval @ B2 @ S5 ) )
% 2.78/1.57 @ C2
% 2.78/1.57 @ skip
% 2.78/1.57 @ ( P @ ( suc @ N2 ) ) )
% 2.78/1.57 => ( ( relati1493963588_hoare
% 2.78/1.57 @ ^ [S5: ( list @ char ) > int,S7: ( list @ char ) > int] :
% 2.78/1.57 ? [N4: nat] : ( P @ N4 @ S5 @ S7 )
% 2.78/1.57 @ ( while @ B2 @ C2 )
% 2.78/1.57 @ C3
% 2.78/1.57 @ Q )
% 2.78/1.57 => ( relati1493963588_hoare @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_171_com_Osize__gen_I4_J,axiom,
% 2.78/1.57 ! [X41: bexp,X42: com,X43: com] :
% 2.78/1.57 ( ( size_com @ ( if @ X41 @ X42 @ X43 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X42 ) @ ( size_com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_172_com_Osize__gen_I3_J,axiom,
% 2.78/1.57 ! [X31: com,X32: com] :
% 2.78/1.57 ( ( size_com @ ( seq @ X31 @ X32 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X31 ) @ ( size_com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_173_com_Osize__gen_I5_J,axiom,
% 2.78/1.57 ! [X51: bexp,X52: com] :
% 2.78/1.57 ( ( size_com @ ( while @ X51 @ X52 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_174_com_Osize_I9_J,axiom,
% 2.78/1.57 ! [X41: bexp,X42: com,X43: com] :
% 2.78/1.57 ( ( size_size @ com @ ( if @ X41 @ X42 @ X43 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X42 ) @ ( size_size @ com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_175_size__neq__size__imp__neq,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( size @ A )
% 2.78/1.57 => ! [X: A,Y: A] :
% 2.78/1.57 ( ( ( size_size @ A @ X )
% 2.78/1.57 != ( size_size @ A @ Y ) )
% 2.78/1.57 => ( X != Y ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_176_com_Osize_I6_J,axiom,
% 2.78/1.57 ( ( size_size @ com @ skip )
% 2.78/1.57 = ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_177_com_Osize_I7_J,axiom,
% 2.78/1.57 ! [X212: list @ char,X222: aexp] :
% 2.78/1.57 ( ( size_size @ com @ ( assign @ X212 @ X222 ) )
% 2.78/1.57 = ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_178_com_Osize__gen_I1_J,axiom,
% 2.78/1.57 ( ( size_com @ skip )
% 2.78/1.57 = ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_179_com_Osize__gen_I2_J,axiom,
% 2.78/1.57 ! [X212: list @ char,X222: aexp] :
% 2.78/1.57 ( ( size_com @ ( assign @ X212 @ X222 ) )
% 2.78/1.57 = ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_180_com_Osize_I10_J,axiom,
% 2.78/1.57 ! [X51: bexp,X52: com] :
% 2.78/1.57 ( ( size_size @ com @ ( while @ X51 @ X52 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_size @ com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_181_com_Osize_I8_J,axiom,
% 2.78/1.57 ! [X31: com,X32: com] :
% 2.78/1.57 ( ( size_size @ com @ ( seq @ X31 @ X32 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X31 ) @ ( size_size @ com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_182_Euclid__induct,axiom,
% 2.78/1.57 ! [P: nat > nat > $o,A2: nat,B2: nat] :
% 2.78/1.57 ( ! [A4: nat,B4: nat] :
% 2.78/1.57 ( ( P @ A4 @ B4 )
% 2.78/1.57 = ( P @ B4 @ A4 ) )
% 2.78/1.57 => ( ! [A4: nat] : ( P @ A4 @ ( zero_zero @ nat ) )
% 2.78/1.57 => ( ! [A4: nat,B4: nat] :
% 2.78/1.57 ( ( P @ A4 @ B4 )
% 2.78/1.57 => ( P @ A4 @ ( plus_plus @ nat @ A4 @ B4 ) ) )
% 2.78/1.57 => ( P @ A2 @ B2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_183_dependent__nat__choice,axiom,
% 2.78/1.57 ! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
% 2.78/1.57 ( ? [X_1: A] : ( P @ ( zero_zero @ nat ) @ X_1 )
% 2.78/1.57 => ( ! [X4: A,N2: nat] :
% 2.78/1.57 ( ( P @ N2 @ X4 )
% 2.78/1.57 => ? [Y5: A] :
% 2.78/1.57 ( ( P @ ( suc @ N2 ) @ Y5 )
% 2.78/1.57 & ( Q @ N2 @ X4 @ Y5 ) ) )
% 2.78/1.57 => ? [F2: nat > A] :
% 2.78/1.57 ! [N3: nat] :
% 2.78/1.57 ( ( P @ N3 @ ( F2 @ N3 ) )
% 2.78/1.57 & ( Q @ N3 @ ( F2 @ N3 ) @ ( F2 @ ( suc @ N3 ) ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_184_verit__sum__simplify,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( cancel1352612707id_add @ A )
% 2.78/1.57 => ! [A2: A] :
% 2.78/1.57 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 2.78/1.57 = A2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_185_add__0__iff,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( semiri456707255roduct @ A )
% 2.78/1.57 => ! [B2: A,A2: A] :
% 2.78/1.57 ( ( B2
% 2.78/1.57 = ( plus_plus @ A @ B2 @ A2 ) )
% 2.78/1.57 = ( A2
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_186_relImage__def,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType] :
% 2.78/1.57 ( ( bNF_Gr1317331620lImage @ B @ A )
% 2.78/1.57 = ( ^ [R2: set @ ( product_prod @ B @ B ),F4: B > A] :
% 2.78/1.57 ( collect @ ( product_prod @ A @ A )
% 2.78/1.57 @ ^ [Uu: product_prod @ A @ A] :
% 2.78/1.57 ? [A1: B,A22: B] :
% 2.78/1.57 ( ( Uu
% 2.78/1.57 = ( product_Pair @ A @ A @ ( F4 @ A1 ) @ ( F4 @ A22 ) ) )
% 2.78/1.57 & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ A1 @ A22 ) @ R2 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_187_relInvImage__def,axiom,
% 2.78/1.57 ! [B: $tType,A: $tType] :
% 2.78/1.57 ( ( bNF_Gr2107612801vImage @ A @ B )
% 2.78/1.57 = ( ^ [A7: set @ A,R2: set @ ( product_prod @ B @ B ),F4: A > B] :
% 2.78/1.57 ( collect @ ( product_prod @ A @ A )
% 2.78/1.57 @ ^ [Uu: product_prod @ A @ A] :
% 2.78/1.57 ? [A1: A,A22: A] :
% 2.78/1.57 ( ( Uu
% 2.78/1.57 = ( product_Pair @ A @ A @ A1 @ A22 ) )
% 2.78/1.57 & ( member @ A @ A1 @ A7 )
% 2.78/1.57 & ( member @ A @ A22 @ A7 )
% 2.78/1.57 & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ ( F4 @ A1 ) @ ( F4 @ A22 ) ) @ R2 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_188_fun__cong__unused__0,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,C: $tType] :
% 2.78/1.57 ( ( zero @ B )
% 2.78/1.57 => ! [F3: ( A > B ) > C,G3: C] :
% 2.78/1.57 ( ( F3
% 2.78/1.57 = ( ^ [X3: A > B] : G3 ) )
% 2.78/1.57 => ( ( F3
% 2.78/1.57 @ ^ [X3: A] : ( zero_zero @ B ) )
% 2.78/1.57 = G3 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_189_divides__aux__eq,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( unique1598680935umeral @ A )
% 2.78/1.57 => ! [Q4: A,R3: A] :
% 2.78/1.57 ( ( unique455577585es_aux @ A @ ( product_Pair @ A @ A @ Q4 @ R3 ) )
% 2.78/1.57 = ( R3
% 2.78/1.57 = ( zero_zero @ A ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_190_image2p__def,axiom,
% 2.78/1.57 ! [D: $tType,B: $tType,A: $tType,C: $tType] :
% 2.78/1.57 ( ( bNF_Greatest_image2p @ C @ A @ D @ B )
% 2.78/1.57 = ( ^ [F4: C > A,G4: D > B,R2: C > D > $o,X3: A,Y4: B] :
% 2.78/1.57 ? [X5: C,Y6: D] :
% 2.78/1.57 ( ( R2 @ X5 @ Y6 )
% 2.78/1.57 & ( ( F4 @ X5 )
% 2.78/1.57 = X3 )
% 2.78/1.57 & ( ( G4 @ Y6 )
% 2.78/1.57 = Y4 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_191_image2pI,axiom,
% 2.78/1.57 ! [A: $tType,C: $tType,D: $tType,B: $tType,R: A > B > $o,X: A,Y: B,F3: A > C,G3: B > D] :
% 2.78/1.57 ( ( R @ X @ Y )
% 2.78/1.57 => ( bNF_Greatest_image2p @ A @ C @ B @ D @ F3 @ G3 @ R @ ( F3 @ X ) @ ( G3 @ Y ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_192_image2pE,axiom,
% 2.78/1.57 ! [D: $tType,B: $tType,A: $tType,C: $tType,F3: A > B,G3: C > D,R: A > C > $o,Fx: B,Gy: D] :
% 2.78/1.57 ( ( bNF_Greatest_image2p @ A @ B @ C @ D @ F3 @ G3 @ R @ Fx @ Gy )
% 2.78/1.57 => ~ ! [X4: A] :
% 2.78/1.57 ( ( Fx
% 2.78/1.57 = ( F3 @ X4 ) )
% 2.78/1.57 => ! [Y3: C] :
% 2.78/1.57 ( ( Gy
% 2.78/1.57 = ( G3 @ Y3 ) )
% 2.78/1.57 => ~ ( R @ X4 @ Y3 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_193_zero__natural_Orsp,axiom,
% 2.78/1.57 ( ( zero_zero @ nat )
% 2.78/1.57 = ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_194_option_Osize__neq,axiom,
% 2.78/1.57 ! [A: $tType,X: option @ A] :
% 2.78/1.57 ( ( size_size @ ( option @ A ) @ X )
% 2.78/1.57 != ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_195_option_Osize_I3_J,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( size_size @ ( option @ A ) @ ( none @ A ) )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_196_option_Osize_I4_J,axiom,
% 2.78/1.57 ! [A: $tType,X2: A] :
% 2.78/1.57 ( ( size_size @ ( option @ A ) @ ( some @ A @ X2 ) )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_197_option_Osize__gen_I2_J,axiom,
% 2.78/1.57 ! [A: $tType,X: A > nat,X2: A] :
% 2.78/1.57 ( ( size_option @ A @ X @ ( some @ A @ X2 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( X @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_198_option_Osize__gen_I1_J,axiom,
% 2.78/1.57 ! [A: $tType,X: A > nat] :
% 2.78/1.57 ( ( size_option @ A @ X @ ( none @ A ) )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_199_tuple__isomorphism_Osize__neq,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,C: $tType,X: tuple_isomorphism @ A @ B @ C] :
% 2.78/1.57 ( ( size_size @ ( tuple_isomorphism @ A @ B @ C ) @ X )
% 2.78/1.57 != ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_200_prod_Osize__neq,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,X: product_prod @ A @ B] :
% 2.78/1.57 ( ( size_size @ ( product_prod @ A @ B ) @ X )
% 2.78/1.57 != ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_201_sum_Osize__neq,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,X: sum_sum @ A @ B] :
% 2.78/1.57 ( ( size_size @ ( sum_sum @ A @ B ) @ X )
% 2.78/1.57 != ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_202_tuple__isomorphism_Osize_I2_J,axiom,
% 2.78/1.57 ! [B: $tType,C: $tType,A: $tType,X1: A > ( product_prod @ B @ C ),X2: ( product_prod @ B @ C ) > A] :
% 2.78/1.57 ( ( size_size @ ( tuple_isomorphism @ A @ B @ C ) @ ( tuple_742722141rphism @ A @ B @ C @ X1 @ X2 ) )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_203_typerep_Osize__neq,axiom,
% 2.78/1.57 ! [X: typerep] :
% 2.78/1.57 ( ( size_size @ typerep @ X )
% 2.78/1.57 != ( zero_zero @ nat ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_204_tuple__isomorphism_Osize__gen,axiom,
% 2.78/1.57 ! [B: $tType,C: $tType,A: $tType,Xb: A > nat,Xa: B > nat,X: C > nat,X1: A > ( product_prod @ B @ C ),X2: ( product_prod @ B @ C ) > A] :
% 2.78/1.57 ( ( tuple_1907371454rphism @ A @ B @ C @ Xb @ Xa @ X @ ( tuple_742722141rphism @ A @ B @ C @ X1 @ X2 ) )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_205_sum_Osize_I3_J,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,X1: A] :
% 2.78/1.57 ( ( size_size @ ( sum_sum @ A @ B ) @ ( sum_Inl @ A @ B @ X1 ) )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_206_sum_Osize__gen_I1_J,axiom,
% 2.78/1.57 ! [B: $tType,A: $tType,Xa: A > nat,X: B > nat,X1: A] :
% 2.78/1.57 ( ( basic_BNF_size_sum @ A @ B @ Xa @ X @ ( sum_Inl @ A @ B @ X1 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( Xa @ X1 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_207_sum_Osize_I4_J,axiom,
% 2.78/1.57 ! [B: $tType,A: $tType,X2: B] :
% 2.78/1.57 ( ( size_size @ ( sum_sum @ A @ B ) @ ( sum_Inr @ B @ A @ X2 ) )
% 2.78/1.57 = ( suc @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_208_obj__sumE,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,S: sum_sum @ A @ B] :
% 2.78/1.57 ( ! [X4: A] :
% 2.78/1.57 ( S
% 2.78/1.57 != ( sum_Inl @ A @ B @ X4 ) )
% 2.78/1.57 => ~ ! [X4: B] :
% 2.78/1.57 ( S
% 2.78/1.57 != ( sum_Inr @ B @ A @ X4 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_209_sum_Osize__gen_I2_J,axiom,
% 2.78/1.57 ! [A: $tType,B: $tType,Xa: A > nat,X: B > nat,X2: B] :
% 2.78/1.57 ( ( basic_BNF_size_sum @ A @ B @ Xa @ X @ ( sum_Inr @ B @ A @ X2 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( X @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_210_not__arg__cong__Inr,axiom,
% 2.78/1.57 ! [B: $tType,A: $tType,X: A,Y: A] :
% 2.78/1.57 ( ( X != Y )
% 2.78/1.57 => ( ( sum_Inr @ A @ B @ X )
% 2.78/1.57 != ( sum_Inr @ A @ B @ Y ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_211_case__optionE,axiom,
% 2.78/1.57 ! [A: $tType,P: $o,Q: A > $o,X: option @ A] :
% 2.78/1.57 ( ( case_option @ $o @ A @ P @ Q @ X )
% 2.78/1.57 => ( ( ( X
% 2.78/1.57 = ( none @ A ) )
% 2.78/1.57 => ~ P )
% 2.78/1.57 => ~ ! [Y3: A] :
% 2.78/1.57 ( ( X
% 2.78/1.57 = ( some @ A @ Y3 ) )
% 2.78/1.57 => ~ ( Q @ Y3 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_212_ssubst__Pair__rhs,axiom,
% 2.78/1.57 ! [B: $tType,A: $tType,R3: A,S: B,R: set @ ( product_prod @ A @ B ),S2: B] :
% 2.78/1.57 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R3 @ S ) @ R )
% 2.78/1.57 => ( ( S2 = S )
% 2.78/1.57 => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R3 @ S2 ) @ R ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_213_option_Ocase__distrib,axiom,
% 2.78/1.57 ! [C: $tType,B: $tType,A: $tType,H: B > C,F1: B,F22: A > B,Option: option @ A] :
% 2.78/1.57 ( ( H @ ( case_option @ B @ A @ F1 @ F22 @ Option ) )
% 2.78/1.57 = ( case_option @ C @ A @ ( H @ F1 )
% 2.78/1.57 @ ^ [X3: A] : ( H @ ( F22 @ X3 ) )
% 2.78/1.57 @ Option ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_214_option_Odisc__eq__case_I2_J,axiom,
% 2.78/1.57 ! [A: $tType,Option: option @ A] :
% 2.78/1.57 ( ( Option
% 2.78/1.57 != ( none @ A ) )
% 2.78/1.57 = ( case_option @ $o @ A @ $false
% 2.78/1.57 @ ^ [Uu: A] : $true
% 2.78/1.57 @ Option ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_215_option_Odisc__eq__case_I1_J,axiom,
% 2.78/1.57 ! [A: $tType,Option: option @ A] :
% 2.78/1.57 ( ( Option
% 2.78/1.57 = ( none @ A ) )
% 2.78/1.57 = ( case_option @ $o @ A @ $true
% 2.78/1.57 @ ^ [Uu: A] : $false
% 2.78/1.57 @ Option ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_216_disjE__realizer2,axiom,
% 2.78/1.57 ! [B: $tType,A: $tType,P: $o,Q: A > $o,X: option @ A,R: B > $o,F3: B,G3: A > B] :
% 2.78/1.57 ( ( case_option @ $o @ A @ P @ Q @ X )
% 2.78/1.57 => ( ( P
% 2.78/1.57 => ( R @ F3 ) )
% 2.78/1.57 => ( ! [Q5: A] :
% 2.78/1.57 ( ( Q @ Q5 )
% 2.78/1.57 => ( R @ ( G3 @ Q5 ) ) )
% 2.78/1.57 => ( R @ ( case_option @ B @ A @ F3 @ G3 @ X ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_217_typerep_Osize_I2_J,axiom,
% 2.78/1.57 ! [X1: literal,X2: list @ typerep] :
% 2.78/1.57 ( ( size_size @ typerep @ ( typerep2 @ X1 @ X2 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_list @ typerep @ ( size_size @ typerep ) @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_218_typerep_Osize__gen,axiom,
% 2.78/1.57 ! [X1: literal,X2: list @ typerep] :
% 2.78/1.57 ( ( size_typerep @ ( typerep2 @ X1 @ X2 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_list @ typerep @ size_typerep @ X2 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_219_list_Osize__gen_I2_J,axiom,
% 2.78/1.57 ! [A: $tType,X: A > nat,X212: A,X222: list @ A] :
% 2.78/1.57 ( ( size_list @ A @ X @ ( cons @ A @ X212 @ X222 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( X @ X212 ) @ ( size_list @ A @ X @ X222 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_220_length__Suc__conv,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,N: nat] :
% 2.78/1.57 ( ( ( size_size @ ( list @ A ) @ Xs )
% 2.78/1.57 = ( suc @ N ) )
% 2.78/1.57 = ( ? [Y4: A,Ys: list @ A] :
% 2.78/1.57 ( ( Xs
% 2.78/1.57 = ( cons @ A @ Y4 @ Ys ) )
% 2.78/1.57 & ( ( size_size @ ( list @ A ) @ Ys )
% 2.78/1.57 = N ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_221_Suc__length__conv,axiom,
% 2.78/1.57 ! [A: $tType,N: nat,Xs: list @ A] :
% 2.78/1.57 ( ( ( suc @ N )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Xs ) )
% 2.78/1.57 = ( ? [Y4: A,Ys: list @ A] :
% 2.78/1.57 ( ( Xs
% 2.78/1.57 = ( cons @ A @ Y4 @ Ys ) )
% 2.78/1.57 & ( ( size_size @ ( list @ A ) @ Ys )
% 2.78/1.57 = N ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_222_length__Cons,axiom,
% 2.78/1.57 ! [A: $tType,X: A,Xs: list @ A] :
% 2.78/1.57 ( ( size_size @ ( list @ A ) @ ( cons @ A @ X @ Xs ) )
% 2.78/1.57 = ( suc @ ( size_size @ ( list @ A ) @ Xs ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_223_list_Osize_I4_J,axiom,
% 2.78/1.57 ! [A: $tType,X212: A,X222: list @ A] :
% 2.78/1.57 ( ( size_size @ ( list @ A ) @ ( cons @ A @ X212 @ X222 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_size @ ( list @ A ) @ X222 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_224_shift__def,axiom,
% 2.78/1.57 ! [B: $tType,A: $tType] :
% 2.78/1.57 ( ( bNF_Greatest_shift @ A @ B )
% 2.78/1.57 = ( ^ [Lab: ( list @ A ) > B,K2: A,Kl: list @ A] : ( Lab @ ( cons @ A @ K2 @ Kl ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_225_set__Cons__def,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( set_Cons @ A )
% 2.78/1.57 = ( ^ [A7: set @ A,XS: set @ ( list @ A )] :
% 2.78/1.57 ( collect @ ( list @ A )
% 2.78/1.57 @ ^ [Z: list @ A] :
% 2.78/1.57 ? [X3: A,Xs2: list @ A] :
% 2.78/1.57 ( ( Z
% 2.78/1.57 = ( cons @ A @ X3 @ Xs2 ) )
% 2.78/1.57 & ( member @ A @ X3 @ A7 )
% 2.78/1.57 & ( member @ ( list @ A ) @ Xs2 @ XS ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_226_neq__if__length__neq,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Ys2: list @ A] :
% 2.78/1.57 ( ( ( size_size @ ( list @ A ) @ Xs )
% 2.78/1.57 != ( size_size @ ( list @ A ) @ Ys2 ) )
% 2.78/1.57 => ( Xs != Ys2 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_227_Ex__list__of__length,axiom,
% 2.78/1.57 ! [A: $tType,N: nat] :
% 2.78/1.57 ? [Xs3: list @ A] :
% 2.78/1.57 ( ( size_size @ ( list @ A ) @ Xs3 )
% 2.78/1.57 = N ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_228_Cons__in__lex,axiom,
% 2.78/1.57 ! [A: $tType,X: A,Xs: list @ A,Y: A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys2 ) ) @ ( lex @ A @ R3 ) )
% 2.78/1.57 = ( ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 2.78/1.57 & ( ( size_size @ ( list @ A ) @ Xs )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Ys2 ) ) )
% 2.78/1.57 | ( ( X = Y )
% 2.78/1.57 & ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( lex @ A @ R3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_229_gen__length__def,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( gen_length @ A )
% 2.78/1.57 = ( ^ [N4: nat,Xs2: list @ A] : ( plus_plus @ nat @ N4 @ ( size_size @ ( list @ A ) @ Xs2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_230_gen__length__code_I2_J,axiom,
% 2.78/1.57 ! [B: $tType,N: nat,X: B,Xs: list @ B] :
% 2.78/1.57 ( ( gen_length @ B @ N @ ( cons @ B @ X @ Xs ) )
% 2.78/1.57 = ( gen_length @ B @ ( suc @ N ) @ Xs ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_231_length__code,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( size_size @ ( list @ A ) )
% 2.78/1.57 = ( gen_length @ A @ ( zero_zero @ nat ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_232_lexord__cons__cons,axiom,
% 2.78/1.57 ! [A: $tType,A2: A,X: list @ A,B2: A,Y: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ A2 @ X ) @ ( cons @ A @ B2 @ Y ) ) @ ( lexord @ A @ R3 ) )
% 2.78/1.57 = ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A2 @ B2 ) @ R3 )
% 2.78/1.57 | ( ( A2 = B2 )
% 2.78/1.57 & ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lexord @ A @ R3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_233_lexn__length,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A ),N: nat] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( lexn @ A @ R3 @ N ) )
% 2.78/1.57 => ( ( ( size_size @ ( list @ A ) @ Xs )
% 2.78/1.57 = N )
% 2.78/1.57 & ( ( size_size @ ( list @ A ) @ Ys2 )
% 2.78/1.57 = N ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_234_lexord__irreflexive,axiom,
% 2.78/1.57 ! [A: $tType,R3: set @ ( product_prod @ A @ A ),Xs: list @ A] :
% 2.78/1.57 ( ! [X4: A] :
% 2.78/1.57 ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ X4 ) @ R3 )
% 2.78/1.57 => ~ ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Xs ) @ ( lexord @ A @ R3 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_235_lexord__linear,axiom,
% 2.78/1.57 ! [A: $tType,R3: set @ ( product_prod @ A @ A ),X: list @ A,Y: list @ A] :
% 2.78/1.57 ( ! [A4: A,B4: A] :
% 2.78/1.57 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A4 @ B4 ) @ R3 )
% 2.78/1.57 | ( A4 = B4 )
% 2.78/1.57 | ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ B4 @ A4 ) @ R3 ) )
% 2.78/1.57 => ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lexord @ A @ R3 ) )
% 2.78/1.57 | ( X = Y )
% 2.78/1.57 | ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Y @ X ) @ ( lexord @ A @ R3 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_236_lexord__lex,axiom,
% 2.78/1.57 ! [A: $tType,X: list @ A,Y: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lex @ A @ R3 ) )
% 2.78/1.57 = ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ X @ Y ) @ ( lexord @ A @ R3 ) )
% 2.78/1.57 & ( ( size_size @ ( list @ A ) @ X )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Y ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_237_length__splice,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Ys2: list @ A] :
% 2.78/1.57 ( ( size_size @ ( list @ A ) @ ( splice @ A @ Xs @ Ys2 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_size @ ( list @ A ) @ Xs ) @ ( size_size @ ( list @ A ) @ Ys2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_238_Shift__def,axiom,
% 2.78/1.57 ! [A: $tType] :
% 2.78/1.57 ( ( bNF_Greatest_Shift @ A )
% 2.78/1.57 = ( ^ [Kl2: set @ ( list @ A ),K2: A] :
% 2.78/1.57 ( collect @ ( list @ A )
% 2.78/1.57 @ ^ [Kl: list @ A] : ( member @ ( list @ A ) @ ( cons @ A @ K2 @ Kl ) @ Kl2 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_239_ShiftD,axiom,
% 2.78/1.57 ! [A: $tType,Kl3: list @ A,Kl4: set @ ( list @ A ),K: A] :
% 2.78/1.57 ( ( member @ ( list @ A ) @ Kl3 @ ( bNF_Greatest_Shift @ A @ Kl4 @ K ) )
% 2.78/1.57 => ( member @ ( list @ A ) @ ( cons @ A @ K @ Kl3 ) @ Kl4 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_240_Succ__Shift,axiom,
% 2.78/1.57 ! [A: $tType,Kl4: set @ ( list @ A ),K: A,Kl3: list @ A] :
% 2.78/1.57 ( ( bNF_Greatest_Succ @ A @ ( bNF_Greatest_Shift @ A @ Kl4 @ K ) @ Kl3 )
% 2.78/1.57 = ( bNF_Greatest_Succ @ A @ Kl4 @ ( cons @ A @ K @ Kl3 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_241_Cons__listrel1__Cons,axiom,
% 2.78/1.57 ! [A: $tType,X: A,Xs: list @ A,Y: A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Ys2 ) ) @ ( listrel1 @ A @ R3 ) )
% 2.78/1.57 = ( ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 2.78/1.57 & ( Xs = Ys2 ) )
% 2.78/1.57 | ( ( X = Y )
% 2.78/1.57 & ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_242_listrel1__eq__len,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( listrel1 @ A @ R3 ) )
% 2.78/1.57 => ( ( size_size @ ( list @ A ) @ Xs )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Ys2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_243_listrel1I1,axiom,
% 2.78/1.57 ! [A: $tType,X: A,Y: A,R3: set @ ( product_prod @ A @ A ),Xs: list @ A] :
% 2.78/1.57 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 2.78/1.57 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ ( cons @ A @ Y @ Xs ) ) @ ( listrel1 @ A @ R3 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_244_Cons__listrel1E1,axiom,
% 2.78/1.57 ! [A: $tType,X: A,Xs: list @ A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( cons @ A @ X @ Xs ) @ Ys2 ) @ ( listrel1 @ A @ R3 ) )
% 2.78/1.57 => ( ! [Y3: A] :
% 2.78/1.57 ( ( Ys2
% 2.78/1.57 = ( cons @ A @ Y3 @ Xs ) )
% 2.78/1.57 => ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y3 ) @ R3 ) )
% 2.78/1.57 => ~ ! [Zs: list @ A] :
% 2.78/1.57 ( ( Ys2
% 2.78/1.57 = ( cons @ A @ X @ Zs ) )
% 2.78/1.57 => ~ ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Zs ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_245_Cons__listrel1E2,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Y: A,Ys2: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ ( cons @ A @ Y @ Ys2 ) ) @ ( listrel1 @ A @ R3 ) )
% 2.78/1.57 => ( ! [X4: A] :
% 2.78/1.57 ( ( Xs
% 2.78/1.57 = ( cons @ A @ X4 @ Ys2 ) )
% 2.78/1.57 => ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ Y ) @ R3 ) )
% 2.78/1.57 => ~ ! [Zs: list @ A] :
% 2.78/1.57 ( ( Xs
% 2.78/1.57 = ( cons @ A @ Y @ Zs ) )
% 2.78/1.57 => ~ ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Zs @ Ys2 ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_246_lexord__append__left__rightI,axiom,
% 2.78/1.57 ! [A: $tType,A2: A,B2: A,R3: set @ ( product_prod @ A @ A ),U: list @ A,X: list @ A,Y: list @ A] :
% 2.78/1.57 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A2 @ B2 ) @ R3 )
% 2.78/1.57 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( append @ A @ U @ ( cons @ A @ A2 @ X ) ) @ ( append @ A @ U @ ( cons @ A @ B2 @ Y ) ) ) @ ( lexord @ A @ R3 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_247_listrel1I,axiom,
% 2.78/1.57 ! [A: $tType,X: A,Y: A,R3: set @ ( product_prod @ A @ A ),Xs: list @ A,Us: list @ A,Vs: list @ A,Ys2: list @ A] :
% 2.78/1.57 ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ R3 )
% 2.78/1.57 => ( ( Xs
% 2.78/1.57 = ( append @ A @ Us @ ( cons @ A @ X @ Vs ) ) )
% 2.78/1.57 => ( ( Ys2
% 2.78/1.57 = ( append @ A @ Us @ ( cons @ A @ Y @ Vs ) ) )
% 2.78/1.57 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( listrel1 @ A @ R3 ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_248_append__eq__append__conv,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Ys2: list @ A,Us: list @ A,Vs: list @ A] :
% 2.78/1.57 ( ( ( ( size_size @ ( list @ A ) @ Xs )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Ys2 ) )
% 2.78/1.57 | ( ( size_size @ ( list @ A ) @ Us )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Vs ) ) )
% 2.78/1.57 => ( ( ( append @ A @ Xs @ Us )
% 2.78/1.57 = ( append @ A @ Ys2 @ Vs ) )
% 2.78/1.57 = ( ( Xs = Ys2 )
% 2.78/1.57 & ( Us = Vs ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_249_length__append,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Ys2: list @ A] :
% 2.78/1.57 ( ( size_size @ ( list @ A ) @ ( append @ A @ Xs @ Ys2 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_size @ ( list @ A ) @ Xs ) @ ( size_size @ ( list @ A ) @ Ys2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_250_size__list__append,axiom,
% 2.78/1.57 ! [A: $tType,F3: A > nat,Xs: list @ A,Ys2: list @ A] :
% 2.78/1.57 ( ( size_list @ A @ F3 @ ( append @ A @ Xs @ Ys2 ) )
% 2.78/1.57 = ( plus_plus @ nat @ ( size_list @ A @ F3 @ Xs ) @ ( size_list @ A @ F3 @ Ys2 ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_251_lexord__sufE,axiom,
% 2.78/1.57 ! [A: $tType,Xs: list @ A,Zs2: list @ A,Ys2: list @ A,Qs: list @ A,R3: set @ ( product_prod @ A @ A )] :
% 2.78/1.57 ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( append @ A @ Xs @ Zs2 ) @ ( append @ A @ Ys2 @ Qs ) ) @ ( lexord @ A @ R3 ) )
% 2.78/1.57 => ( ( Xs != Ys2 )
% 2.78/1.57 => ( ( ( size_size @ ( list @ A ) @ Xs )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Ys2 ) )
% 2.78/1.57 => ( ( ( size_size @ ( list @ A ) @ Zs2 )
% 2.78/1.57 = ( size_size @ ( list @ A ) @ Qs ) )
% 2.78/1.57 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Xs @ Ys2 ) @ ( lexord @ A @ R3 ) ) ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(fact_252_lex__append__leftD,axiom,
% 2.78/1.57 ! [A: $tType,R3: set @ ( product_prod @ A @ A ),Xs: list @ A,Ys2: list @ A,Zs2: list @ A] :
% 2.78/1.57 ( ! [X4: A] :
% 2.78/1.57 ~ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X4 @ X4 ) @ R3 )
% 2.78/1.57 => ( ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ ( append @ A @ Xs @ Ys2 ) @ ( append @ A @ Xs @ Zs2 ) ) @ ( lex @ A @ R3 ) )
% 2.78/1.57 => ( member @ ( product_prod @ ( list @ A ) @ ( list @ A ) ) @ ( product_Pair @ ( list @ A ) @ ( list @ A ) @ Ys2 @ Zs2 ) @ ( lex @ A @ R3 ) ) ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Com_Ocom___Nat_Osize,axiom,
% 2.78/1.57 size @ com ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
% 2.78/1.57 semiri456707255roduct @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Divides_Ounique__euclidean__semiring__numeral,axiom,
% 2.78/1.57 unique1598680935umeral @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add,axiom,
% 2.78/1.57 ordere779506340up_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
% 2.78/1.57 linord219039673up_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Ocancel__comm__monoid__add,axiom,
% 2.78/1.57 cancel1352612707id_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Ocancel__semigroup__add,axiom,
% 2.78/1.57 cancel_semigroup_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Oab__semigroup__add,axiom,
% 2.78/1.57 ab_semigroup_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Ocomm__monoid__add,axiom,
% 2.78/1.57 comm_monoid_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Osemigroup__add,axiom,
% 2.78/1.57 semigroup_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Omonoid__add,axiom,
% 2.78/1.57 monoid_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Ogroup__add,axiom,
% 2.78/1.57 group_add @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Num_Oneg__numeral,axiom,
% 2.78/1.57 neg_numeral @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Int_Oint___Groups_Ozero,axiom,
% 2.78/1.57 zero @ int ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct_1,axiom,
% 2.78/1.57 semiri456707255roduct @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Divides_Ounique__euclidean__semiring__numeral_2,axiom,
% 2.78/1.57 unique1598680935umeral @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
% 2.78/1.57 canoni770627133id_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add_3,axiom,
% 2.78/1.57 ordere779506340up_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Ocancel__comm__monoid__add_4,axiom,
% 2.78/1.57 cancel1352612707id_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Ocancel__semigroup__add_5,axiom,
% 2.78/1.57 cancel_semigroup_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Oab__semigroup__add_6,axiom,
% 2.78/1.57 ab_semigroup_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Ocomm__monoid__add_7,axiom,
% 2.78/1.57 comm_monoid_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Osemigroup__add_8,axiom,
% 2.78/1.57 semigroup_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Omonoid__add_9,axiom,
% 2.78/1.57 monoid_add @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Groups_Ozero_10,axiom,
% 2.78/1.57 zero @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Nat_Onat___Nat_Osize_11,axiom,
% 2.78/1.57 size @ nat ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_AExp_Oaexp___Nat_Osize_12,axiom,
% 2.78/1.57 size @ aexp ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_BExp_Obexp___Nat_Osize_13,axiom,
% 2.78/1.57 size @ bexp ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_List_Olist___Nat_Osize_14,axiom,
% 2.78/1.57 ! [A8: $tType] : ( size @ ( list @ A8 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_String_Ochar___Nat_Osize_15,axiom,
% 2.78/1.57 size @ char ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Sum__Type_Osum___Nat_Osize_16,axiom,
% 2.78/1.57 ! [A8: $tType,A9: $tType] : ( size @ ( sum_sum @ A8 @ A9 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Option_Ooption___Nat_Osize_17,axiom,
% 2.78/1.57 ! [A8: $tType] : ( size @ ( option @ A8 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Typerep_Otyperep___Nat_Osize_18,axiom,
% 2.78/1.57 size @ typerep ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Product__Type_Oprod___Nat_Osize_19,axiom,
% 2.78/1.57 ! [A8: $tType,A9: $tType] : ( size @ ( product_prod @ A8 @ A9 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(tcon_Record_Otuple__isomorphism___Nat_Osize_20,axiom,
% 2.78/1.57 ! [A8: $tType,A9: $tType,A10: $tType] : ( size @ ( tuple_isomorphism @ A8 @ A9 @ A10 ) ) ).
% 2.78/1.57
% 2.78/1.57 thf(conj_0,conjecture,
% 2.78/1.57 ? [S6: ( list @ char ) > int,S8: ( list @ char ) > int] :
% 2.78/1.57 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ p @ b @ c @ ( suc @ ka ) @ S6 @ S8 )
% 2.78/1.57 & ( bval @ b @ S6 )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c @ S6 ) @ ta )
% 2.78/1.57 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ c2 @ S8 ) @ t_a ) ) ).
% 2.78/1.57 ------------------------
% 2.78/1.59 % (18597)lrs+1002_1:8_bd=off:fd=off:hud=10:tnu=1:i=183:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/183Mi)
% 2.78/1.59 % (18598)lrs+10_1:1_c=on:cnfonf=conj_eager:fd=off:fe=off:kws=frequency:spb=intro:i=4:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/4Mi)
% 2.78/1.59 % (18598)Instruction limit reached!
% 2.78/1.59 % (18598)------------------------------
% 2.78/1.59 % (18598)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.78/1.59 % (18598)Termination reason: Unknown
% 2.78/1.59 % (18598)Termination phase: shuffling
% 2.78/1.59
% 2.78/1.59 % (18598)Memory used [KB]: 1535
% 2.78/1.59 % (18598)Time elapsed: 0.003 s
% 2.78/1.59 % (18598)Instructions burned: 5 (million)
% 2.78/1.59 % (18598)------------------------------
% 2.78/1.59 % (18598)------------------------------
% 2.78/1.59 % (18603)lrs+1004_1:128_cond=on:e2e=on:sp=weighted_frequency:i=18:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/18Mi)
% 2.90/1.60 % (18599)dis+1010_1:1_au=on:cbe=off:chr=on:fsr=off:hfsq=on:nm=64:sos=theory:sp=weighted_frequency:i=27:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/27Mi)
% 2.90/1.60 % (18600)lrs+10_1:1_au=on:inj=on:i=2:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/2Mi)
% 2.90/1.60 % (18601)lrs+1002_1:128_aac=none:au=on:cnfonf=lazy_not_gen_be_off:sos=all:i=2:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/2Mi)
% 2.90/1.60 % (18602)lrs+1002_1:1_au=on:bd=off:e2e=on:sd=2:sos=on:ss=axioms:i=275:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/275Mi)
% 2.90/1.60 % (18600)Instruction limit reached!
% 2.90/1.60 % (18600)------------------------------
% 2.90/1.60 % (18600)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.60 % (18600)Termination reason: Unknown
% 2.90/1.60 % (18600)Termination phase: shuffling
% 2.90/1.60
% 2.90/1.60 % (18600)Memory used [KB]: 1407
% 2.90/1.60 % (18600)Time elapsed: 0.004 s
% 2.90/1.60 % (18600)Instructions burned: 3 (million)
% 2.90/1.60 % (18600)------------------------------
% 2.90/1.60 % (18600)------------------------------
% 2.90/1.60 % (18601)Instruction limit reached!
% 2.90/1.60 % (18601)------------------------------
% 2.90/1.60 % (18601)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.60 % (18601)Termination reason: Unknown
% 2.90/1.60 % (18601)Termination phase: shuffling
% 2.90/1.60
% 2.90/1.60 % (18601)Memory used [KB]: 1407
% 2.90/1.60 % (18601)Time elapsed: 0.004 s
% 2.90/1.60 % (18601)Instructions burned: 3 (million)
% 2.90/1.60 % (18601)------------------------------
% 2.90/1.60 % (18601)------------------------------
% 2.90/1.60 % (18604)lrs+10_1:1_bet=on:cnfonf=off:fd=off:hud=5:inj=on:i=3:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/3Mi)
% 2.90/1.60 % (18603)Instruction limit reached!
% 2.90/1.60 % (18603)------------------------------
% 2.90/1.60 % (18603)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.60 % (18603)Termination reason: Unknown
% 2.90/1.60 % (18603)Termination phase: shuffling
% 2.90/1.60
% 2.90/1.60 % (18603)Memory used [KB]: 1663
% 2.90/1.60 % (18603)Time elapsed: 0.012 s
% 2.90/1.60 % (18603)Instructions burned: 19 (million)
% 2.90/1.60 % (18603)------------------------------
% 2.90/1.60 % (18603)------------------------------
% 2.90/1.60 % (18604)Instruction limit reached!
% 2.90/1.60 % (18604)------------------------------
% 2.90/1.60 % (18604)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.60 % (18604)Termination reason: Unknown
% 2.90/1.60 % (18604)Termination phase: shuffling
% 2.90/1.60
% 2.90/1.60 % (18604)Memory used [KB]: 1407
% 2.90/1.60 % (18604)Time elapsed: 0.003 s
% 2.90/1.60 % (18604)Instructions burned: 3 (million)
% 2.90/1.60 % (18604)------------------------------
% 2.90/1.60 % (18604)------------------------------
% 2.90/1.61 % (18608)lrs+1002_1:1_aac=none:au=on:cnfonf=lazy_gen:plsq=on:plsqc=1:plsqr=4203469,65536:i=1041:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/1041Mi)
% 2.90/1.61 % (18599)Instruction limit reached!
% 2.90/1.61 % (18599)------------------------------
% 2.90/1.61 % (18599)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.61 % (18599)Termination reason: Unknown
% 2.90/1.61 % (18599)Termination phase: shuffling
% 2.90/1.61
% 2.90/1.61 % (18599)Memory used [KB]: 1791
% 2.90/1.61 % (18599)Time elapsed: 0.019 s
% 2.90/1.61 % (18599)Instructions burned: 28 (million)
% 2.90/1.61 % (18599)------------------------------
% 2.90/1.61 % (18599)------------------------------
% 2.90/1.61 % (18607)dis+21_1:1_cbe=off:cnfonf=off:fs=off:fsr=off:hud=1:inj=on:i=3:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/3Mi)
% 2.90/1.61 % (18607)Instruction limit reached!
% 2.90/1.61 % (18607)------------------------------
% 2.90/1.61 % (18607)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.61 % (18607)Termination reason: Unknown
% 2.90/1.61 % (18607)Termination phase: shuffling
% 2.90/1.61
% 2.90/1.61 % (18607)Memory used [KB]: 1407
% 2.90/1.61 % (18607)Time elapsed: 0.003 s
% 2.90/1.61 % (18607)Instructions burned: 3 (million)
% 2.90/1.61 % (18607)------------------------------
% 2.90/1.61 % (18607)------------------------------
% 2.90/1.62 % (18605)lrs+1002_1:1_cnfonf=lazy_not_be_gen:hud=14:prag=on:sp=weighted_frequency:tnu=1:i=37:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/37Mi)
% 2.90/1.62 % (18606)lrs+2_16:1_acc=model:au=on:bd=off:c=on:e2e=on:nm=2:sos=all:i=15:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/15Mi)
% 2.90/1.62 % (18606)Instruction limit reached!
% 2.90/1.62 % (18606)------------------------------
% 2.90/1.62 % (18606)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.62 % (18606)Termination reason: Unknown
% 2.90/1.62 % (18606)Termination phase: shuffling
% 2.90/1.62
% 2.90/1.62 % (18606)Memory used [KB]: 1663
% 2.90/1.62 % (18606)Time elapsed: 0.011 s
% 2.90/1.62 % (18606)Instructions burned: 15 (million)
% 2.90/1.62 % (18606)------------------------------
% 2.90/1.62 % (18606)------------------------------
% 2.90/1.63 % (18610)lrs+10_1:1_acc=on:amm=sco:cs=on:tgt=full:i=16:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/16Mi)
% 2.90/1.63 % (18610)Instruction limit reached!
% 2.90/1.63 % (18610)------------------------------
% 2.90/1.63 % (18610)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.63 % (18610)Termination reason: Unknown
% 2.90/1.63 % (18610)Termination phase: shuffling
% 2.90/1.63
% 2.90/1.63 % (18610)Memory used [KB]: 1663
% 2.90/1.63 % (18610)Time elapsed: 0.006 s
% 2.90/1.63 % (18610)Instructions burned: 16 (million)
% 2.90/1.63 % (18610)------------------------------
% 2.90/1.63 % (18610)------------------------------
% 2.90/1.63 % (18609)lrs+10_1:1_av=off:chr=on:plsq=on:slsq=on:i=7:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/7Mi)
% 2.90/1.64 % (18609)Instruction limit reached!
% 2.90/1.64 % (18609)------------------------------
% 2.90/1.64 % (18609)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.64 % (18609)Termination reason: Unknown
% 2.90/1.64 % (18609)Termination phase: shuffling
% 2.90/1.64
% 2.90/1.64 % (18609)Memory used [KB]: 1535
% 2.90/1.64 % (18609)Time elapsed: 0.007 s
% 2.90/1.64 % (18605)Instruction limit reached!
% 2.90/1.64 % (18605)------------------------------
% 2.90/1.64 % (18605)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.64 % (18609)Instructions burned: 8 (million)
% 2.90/1.64 % (18605)Termination reason: Unknown
% 2.90/1.64 % (18609)------------------------------
% 2.90/1.64 % (18609)------------------------------
% 2.90/1.64 % (18605)Termination phase: shuffling
% 2.90/1.64
% 2.90/1.64 % (18605)Memory used [KB]: 2302
% 2.90/1.64 % (18605)Time elapsed: 0.022 s
% 2.90/1.64 % (18605)Instructions burned: 38 (million)
% 2.90/1.64 % (18605)------------------------------
% 2.90/1.64 % (18605)------------------------------
% 2.90/1.64 % (18612)lrs+2_1:1_apa=on:au=on:bd=preordered:cnfonf=off:cs=on:ixr=off:sos=on:i=3:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/3Mi)
% 2.90/1.64 % (18597)Instruction limit reached!
% 2.90/1.64 % (18597)------------------------------
% 2.90/1.64 % (18597)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.64 % (18597)Termination reason: Unknown
% 2.90/1.64 % (18597)Termination phase: Saturation
% 2.90/1.64
% 2.90/1.64 % (18597)Memory used [KB]: 7291
% 2.90/1.64 % (18597)Time elapsed: 0.053 s
% 2.90/1.64 % (18597)Instructions burned: 183 (million)
% 2.90/1.64 % (18597)------------------------------
% 2.90/1.64 % (18597)------------------------------
% 2.90/1.64 % (18612)Instruction limit reached!
% 2.90/1.64 % (18612)------------------------------
% 2.90/1.64 % (18612)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.64 % (18612)Termination reason: Unknown
% 2.90/1.64 % (18612)Termination phase: shuffling
% 2.90/1.64
% 2.90/1.64 % (18612)Memory used [KB]: 1407
% 2.90/1.64 % (18612)Time elapsed: 0.003 s
% 2.90/1.64 % (18612)Instructions burned: 5 (million)
% 2.90/1.64 % (18612)------------------------------
% 2.90/1.64 % (18612)------------------------------
% 2.90/1.64 % (18611)lrs+21_1:1_au=on:cnfonf=off:fd=preordered:fe=off:fsr=off:hud=11:inj=on:kws=precedence:s2pl=no:sp=weighted_frequency:tgt=full:i=3:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/3Mi)
% 2.90/1.64 % (18611)Instruction limit reached!
% 2.90/1.64 % (18611)------------------------------
% 2.90/1.64 % (18611)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.64 % (18611)Termination reason: Unknown
% 2.90/1.64 % (18611)Termination phase: shuffling
% 2.90/1.64
% 2.90/1.64 % (18611)Memory used [KB]: 1407
% 2.90/1.64 % (18611)Time elapsed: 0.004 s
% 2.90/1.64 % (18611)Instructions burned: 3 (million)
% 2.90/1.64 % (18611)------------------------------
% 2.90/1.64 % (18611)------------------------------
% 2.90/1.65 % (18615)dis+1004_1:1_cha=on:cs=on:fe=off:hud=1:i=4:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/4Mi)
% 2.90/1.65 % (18616)lrs+1002_1:1_anc=all_dependent:au=on:cbe=off:fde=unused:ntd=on:i=18:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/18Mi)
% 2.90/1.65 % (18615)Instruction limit reached!
% 2.90/1.65 % (18615)------------------------------
% 2.90/1.65 % (18615)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.65 % (18615)Termination reason: Unknown
% 2.90/1.65 % (18615)Termination phase: shuffling
% 2.90/1.65
% 2.90/1.65 % (18615)Memory used [KB]: 1535
% 2.90/1.65 % (18615)Time elapsed: 0.003 s
% 2.90/1.65 % (18615)Instructions burned: 6 (million)
% 2.90/1.65 % (18615)------------------------------
% 2.90/1.65 % (18615)------------------------------
% 2.90/1.65 % (18613)lrs+10_1:1_cnfonf=off:cs=on:hud=3:prag=on:sup=off:i=7:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/7Mi)
% 2.90/1.65 % (18614)dis+1002_1:1_add=large:cnfonf=lazy_pi_sigma_gen:fe=off:prag=on:i=3:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/3Mi)
% 2.90/1.66 % (18614)Instruction limit reached!
% 2.90/1.66 % (18614)------------------------------
% 2.90/1.66 % (18614)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.66 % (18614)Termination reason: Unknown
% 2.90/1.66 % (18614)Termination phase: shuffling
% 2.90/1.66
% 2.90/1.66 % (18614)Memory used [KB]: 1535
% 2.90/1.66 % (18614)Time elapsed: 0.004 s
% 2.90/1.66 % (18614)Instructions burned: 3 (million)
% 2.90/1.66 % (18614)------------------------------
% 2.90/1.66 % (18614)------------------------------
% 2.90/1.66 % (18616)Instruction limit reached!
% 2.90/1.66 % (18616)------------------------------
% 2.90/1.66 % (18616)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.66 % (18616)Termination reason: Unknown
% 2.90/1.66 % (18616)Termination phase: shuffling
% 2.90/1.66
% 2.90/1.66 % (18616)Memory used [KB]: 1663
% 2.90/1.66 % (18616)Time elapsed: 0.007 s
% 2.90/1.66 % (18616)Instructions burned: 19 (million)
% 2.90/1.66 % (18616)------------------------------
% 2.90/1.66 % (18616)------------------------------
% 2.90/1.66 % (18613)Instruction limit reached!
% 2.90/1.66 % (18613)------------------------------
% 2.90/1.66 % (18613)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.66 % (18613)Termination reason: Unknown
% 2.90/1.66 % (18613)Termination phase: shuffling
% 2.90/1.66
% 2.90/1.66 % (18613)Memory used [KB]: 1535
% 2.90/1.66 % (18613)Time elapsed: 0.006 s
% 2.90/1.66 % (18613)Instructions burned: 7 (million)
% 2.90/1.66 % (18613)------------------------------
% 2.90/1.66 % (18613)------------------------------
% 2.90/1.66 % (18618)lrs+1004_1:1_chr=on:prag=on:i=6:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/6Mi)
% 2.90/1.66 % (18617)lrs+10_1:1_e2e=on:sd=1:sgt=8:ss=axioms:i=710:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/710Mi)
% 2.90/1.66 % (18618)Instruction limit reached!
% 2.90/1.66 % (18618)------------------------------
% 2.90/1.66 % (18618)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.66 % (18618)Termination reason: Unknown
% 2.90/1.66 % (18618)Termination phase: shuffling
% 2.90/1.66
% 2.90/1.66 % (18618)Memory used [KB]: 1535
% 2.90/1.66 % (18618)Time elapsed: 0.003 s
% 2.90/1.66 % (18618)Instructions burned: 6 (million)
% 2.90/1.66 % (18618)------------------------------
% 2.90/1.66 % (18618)------------------------------
% 2.90/1.67 % (18620)dis+21_1:8_apa=on:cnfonf=off:fd=off:fsr=off:hud=0:ins=1:kws=inv_frequency:nwc=10.0:ss=axioms:st=5.0:i=21:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/21Mi)
% 2.90/1.67 % (18621)dis+10_1:1_cnfonf=lazy_gen:fe=off:i=5:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/5Mi)
% 2.90/1.67 % (18622)lrs+2_1:1_cnfonf=lazy_not_gen_be_off:cs=on:fe=off:hud=10:inj=on:ins=3:plsq=on:plsqc=1:sd=10:ss=axioms:tnu=1:i=6:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/6Mi)
% 2.90/1.67 % (18619)dis+1002_5:1_au=on:bd=off:e2e=on:fde=none:fs=off:fsr=off:sos=on:i=902:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/902Mi)
% 2.90/1.67 % (18620)Instruction limit reached!
% 2.90/1.67 % (18620)------------------------------
% 2.90/1.67 % (18620)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.67 % (18620)Termination reason: Unknown
% 2.90/1.67 % (18620)Termination phase: shuffling
% 2.90/1.67
% 2.90/1.67 % (18620)Memory used [KB]: 1791
% 2.90/1.67 % (18620)Time elapsed: 0.008 s
% 2.90/1.67 % (18620)Instructions burned: 22 (million)
% 2.90/1.67 % (18620)------------------------------
% 2.90/1.67 % (18620)------------------------------
% 2.90/1.67 % (18621)Instruction limit reached!
% 2.90/1.67 % (18621)------------------------------
% 2.90/1.67 % (18621)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.67 % (18621)Termination reason: Unknown
% 2.90/1.67 % (18621)Termination phase: shuffling
% 2.90/1.67
% 2.90/1.67 % (18621)Memory used [KB]: 1535
% 2.90/1.67 % (18621)Time elapsed: 0.003 s
% 2.90/1.67 % (18621)Instructions burned: 7 (million)
% 2.90/1.67 % (18621)------------------------------
% 2.90/1.67 % (18621)------------------------------
% 2.90/1.67 % (18602)Refutation not found, incomplete strategy
% 2.90/1.67 % (18602)------------------------------
% 2.90/1.67 % (18602)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.67 % (18602)Termination reason: Refutation not found, incomplete strategy
% 2.90/1.67
% 2.90/1.67
% 2.90/1.67 % (18602)Memory used [KB]: 7291
% 2.90/1.67 % (18602)Time elapsed: 0.079 s
% 2.90/1.67 % (18602)Instructions burned: 172 (million)
% 2.90/1.67 % (18602)------------------------------
% 2.90/1.67 % (18602)------------------------------
% 2.90/1.67 % (18622)Instruction limit reached!
% 2.90/1.67 % (18622)------------------------------
% 2.90/1.67 % (18622)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.67 % (18622)Termination reason: Unknown
% 2.90/1.67 % (18622)Termination phase: shuffling
% 2.90/1.67
% 2.90/1.67 % (18622)Memory used [KB]: 1535
% 2.90/1.67 % (18622)Time elapsed: 0.003 s
% 2.90/1.67 % (18622)Instructions burned: 7 (million)
% 2.90/1.67 % (18622)------------------------------
% 2.90/1.67 % (18622)------------------------------
% 2.90/1.68 % (18623)lrs+1002_1:128_au=on:c=on:fsr=off:piset=equals:i=377:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/377Mi)
% 2.90/1.68 % (18625)lrs+10_1:1_cnfonf=lazy_not_be_gen:ntd=on:sp=const_min:ss=axioms:sup=off:i=19:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/19Mi)
% 2.90/1.68 % (18624)dis+1010_1:4_atotf=0.2:c=on:cbe=off:cnfonf=lazy_simp:fe=off:ins=2:ntd=on:s2a=on:s2at=5.0:sgt=5:ss=axioms:st=1.5:i=779:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/779Mi)
% 2.90/1.68 % (18626)lrs+1010_1:1_au=on:s2a=on:sd=1:sgt=50:ss=axioms:i=879:si=on:rtra=on_0 on DTF2THF_18316 for (2999ds/879Mi)
% 2.90/1.69 % (18625)Instruction limit reached!
% 2.90/1.69 % (18625)------------------------------
% 2.90/1.69 % (18625)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.69 % (18625)Termination reason: Unknown
% 2.90/1.69 % (18625)Termination phase: shuffling
% 2.90/1.69
% 2.90/1.69 % (18625)Memory used [KB]: 1918
% 2.90/1.69 % (18625)Time elapsed: 0.007 s
% 2.90/1.69 % (18625)Instructions burned: 21 (million)
% 2.90/1.69 % (18625)------------------------------
% 2.90/1.69 % (18625)------------------------------
% 2.90/1.70 % (18627)dis+1002_1:128_acc=on:er=filter:i=17:si=on:rtra=on_0 on DTF2THF_18316 for (2998ds/17Mi)
% 2.90/1.70 % (18627)Instruction limit reached!
% 2.90/1.70 % (18627)------------------------------
% 2.90/1.70 % (18627)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.70 % (18627)Termination reason: Unknown
% 2.90/1.70 % (18627)Termination phase: shuffling
% 2.90/1.70
% 2.90/1.70 % (18627)Memory used [KB]: 1663
% 2.90/1.70 % (18627)Time elapsed: 0.007 s
% 2.90/1.70 % (18627)Instructions burned: 18 (million)
% 2.90/1.70 % (18627)------------------------------
% 2.90/1.70 % (18627)------------------------------
% 2.90/1.71 % (18628)ott+21_1:1_apa=on:au=on:cnfonf=off:sos=on:i=3:si=on:rtra=on_0 on DTF2THF_18316 for (2998ds/3Mi)
% 2.90/1.72 % (18628)Instruction limit reached!
% 2.90/1.72 % (18628)------------------------------
% 2.90/1.72 % (18628)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.72 % (18628)Termination reason: Unknown
% 2.90/1.72 % (18628)Termination phase: shuffling
% 2.90/1.72
% 2.90/1.72 % (18628)Memory used [KB]: 1407
% 2.90/1.72 % (18628)Time elapsed: 0.002 s
% 2.90/1.72 % (18628)Instructions burned: 3 (million)
% 2.90/1.72 % (18628)------------------------------
% 2.90/1.72 % (18628)------------------------------
% 2.90/1.72 % (18629)lrs+1010_1:8_cnfonf=off:hud=1:inj=on:tnu=5:i=30:si=on:rtra=on_0 on DTF2THF_18316 for (2998ds/30Mi)
% 2.90/1.74 % (18629)Instruction limit reached!
% 2.90/1.74 % (18629)------------------------------
% 2.90/1.74 % (18629)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.74 % (18629)Termination reason: Unknown
% 2.90/1.74 % (18629)Termination phase: shuffling
% 2.90/1.74
% 2.90/1.74 % (18629)Memory used [KB]: 1918
% 2.90/1.74 % (18629)Time elapsed: 0.012 s
% 2.90/1.74 % (18629)Instructions burned: 32 (million)
% 2.90/1.74 % (18629)------------------------------
% 2.90/1.74 % (18629)------------------------------
% 2.90/1.74 % (18630)dis+10_1:1_ixr=off:plsq=on:plsqc=1:plsqr=32,1:s2a=on:i=127:si=on:rtra=on_0 on DTF2THF_18316 for (2998ds/127Mi)
% 2.90/1.75 % (18619)First to succeed.
% 2.90/1.75 % (18619)Refutation found. Thanks to Tanya!
% 2.90/1.75 % SZS status Theorem for DTF2THF_18316
% 2.90/1.75 % SZS output start Proof for DTF2THF_18316
% 2.90/1.75 thf(type_def_5, type, bexp: $tType).
% 2.90/1.75 thf(type_def_6, type, char: $tType).
% 2.90/1.75 thf(type_def_7, type, list: ($tType) > $tType).
% 2.90/1.75 thf(type_def_8, type, int: $tType).
% 2.90/1.75 thf(type_def_10, type, set: ($tType) > $tType).
% 2.90/1.75 thf(type_def_11, type, product_prod: ($tType * $tType) > $tType).
% 2.90/1.75 thf(type_def_12, type, nat: $tType).
% 2.90/1.75 thf(type_def_13, type, sum_sum: ($tType * $tType) > $tType).
% 2.90/1.75 thf(type_def_14, type, com: $tType).
% 2.90/1.75 thf(type_def_15, type, aexp: $tType).
% 2.90/1.75 thf(type_def_16, type, option: ($tType) > $tType).
% 2.90/1.75 thf(type_def_17, type, tuple_isomorphism: ($tType * $tType * $tType) > $tType).
% 2.90/1.75 thf(type_def_18, type, literal: $tType).
% 2.90/1.75 thf(type_def_19, type, typerep: $tType).
% 2.90/1.75 thf(func_def_0, type, tuple_isomorphism: ($tType * $tType * $tType) > $tType).
% 2.90/1.75 thf(func_def_1, type, product_prod: ($tType * $tType) > $tType).
% 2.90/1.75 thf(func_def_2, type, typerep: $tType).
% 2.90/1.75 thf(func_def_3, type, literal: $tType).
% 2.90/1.75 thf(func_def_4, type, sum_sum: ($tType * $tType) > $tType).
% 2.90/1.75 thf(func_def_5, type, option: ($tType) > $tType).
% 2.90/1.75 thf(func_def_6, type, char: $tType).
% 2.90/1.75 thf(func_def_7, type, list: ($tType) > $tType).
% 2.90/1.75 thf(func_def_8, type, bexp: $tType).
% 2.90/1.75 thf(func_def_9, type, aexp: $tType).
% 2.90/1.75 thf(func_def_10, type, set: ($tType) > $tType).
% 2.90/1.75 thf(func_def_11, type, nat: $tType).
% 2.90/1.75 thf(func_def_12, type, int: $tType).
% 2.90/1.75 thf(func_def_13, type, com: $tType).
% 2.90/1.75 thf(func_def_14, type, type: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_15, type, size: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_16, type, zero: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_17, type, neg_numeral: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_18, type, group_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_19, type, monoid_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_20, type, semigroup_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_21, type, comm_monoid_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_22, type, ab_semigroup_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_23, type, cancel_semigroup_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_24, type, cancel1352612707id_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_25, type, linord219039673up_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_26, type, ordere779506340up_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_27, type, canoni770627133id_add: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_28, type, unique1598680935umeral: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_29, type, semiri456707255roduct: !>[X0: $tType]:($o)).
% 2.90/1.75 thf(func_def_30, type, bval: bexp > (list @ char > int) > $o).
% 2.90/1.75 thf(func_def_31, type, bNF_Greatest_Shift: !>[X0: $tType]:(set @ list @ X0 > X0 > set @ list @ X0)).
% 2.90/1.75 thf(func_def_32, type, bNF_Greatest_Succ: !>[X0: $tType]:(set @ list @ X0 > list @ X0 > set @ X0)).
% 2.90/1.75 thf(func_def_33, type, bNF_Greatest_image2: !>[X0: $tType, X1: $tType, X2: $tType]:(set @ X0 > (X0 > X1) > (X0 > X2) > set @ product_prod @ X1 @ X2)).
% 2.90/1.75 thf(func_def_34, type, bNF_Greatest_image2p: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((X0 > X1) > (X2 > X3) > (X0 > X2 > $o) > X1 > X3 > $o)).
% 2.90/1.75 thf(func_def_35, type, bNF_Gr1317331620lImage: !>[X0: $tType, X1: $tType]:(set @ product_prod @ X0 @ X0 > (X0 > X1) > set @ product_prod @ X1 @ X1)).
% 2.90/1.75 thf(func_def_36, type, bNF_Gr2107612801vImage: !>[X0: $tType, X1: $tType]:(set @ X0 > set @ product_prod @ X1 @ X1 > (X0 > X1) > set @ product_prod @ X0 @ X0)).
% 2.90/1.75 thf(func_def_37, type, bNF_Greatest_shift: !>[X0: $tType, X1: $tType]:((list @ X0 > X1) > X0 > list @ X0 > X1)).
% 2.90/1.75 thf(func_def_38, type, basic_BNF_size_sum: !>[X0: $tType, X1: $tType]:((X0 > nat) > (X1 > nat) > sum_sum @ X0 @ X1 > nat)).
% 2.90/1.75 thf(func_def_39, type, big_big_step: product_prod @ com @ (list @ char > int) > (list @ char > int) > $o).
% 2.90/1.75 thf(func_def_40, type, assign: list @ char > aexp > com).
% 2.90/1.75 thf(func_def_41, type, if: bexp > com > com > com).
% 2.90/1.75 thf(func_def_42, type, skip: com).
% 2.90/1.75 thf(func_def_43, type, seq: com > com > com).
% 2.90/1.75 thf(func_def_44, type, while: bexp > com > com).
% 2.90/1.75 thf(func_def_45, type, size_com: com > nat).
% 2.90/1.75 thf(func_def_46, type, unique455577585es_aux: !>[X0: $tType]:(product_prod @ X0 @ X0 > $o)).
% 2.90/1.75 thf(func_def_47, type, plus_plus: !>[X0: $tType]:(X0 > X0 > X0)).
% 2.90/1.75 thf(func_def_48, type, zero_zero: !>[X0: $tType]:(X0)).
% 2.90/1.75 thf(func_def_49, type, append: !>[X0: $tType]:(list @ X0 > list @ X0 > list @ X0)).
% 2.90/1.75 thf(func_def_50, type, gen_length: !>[X0: $tType]:(nat > list @ X0 > nat)).
% 2.90/1.75 thf(func_def_51, type, lex: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > set @ product_prod @ list @ X0 @ list @ X0)).
% 2.90/1.75 thf(func_def_52, type, lexn: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > nat > set @ product_prod @ list @ X0 @ list @ X0)).
% 2.90/1.75 thf(func_def_53, type, lexord: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > set @ product_prod @ list @ X0 @ list @ X0)).
% 2.90/1.75 thf(func_def_54, type, cons: !>[X0: $tType]:(X0 > list @ X0 > list @ X0)).
% 2.90/1.75 thf(func_def_55, type, size_list: !>[X0: $tType]:((X0 > nat) > list @ X0 > nat)).
% 2.90/1.75 thf(func_def_56, type, listrel1: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > set @ product_prod @ list @ X0 @ list @ X0)).
% 2.90/1.75 thf(func_def_57, type, set_Cons: !>[X0: $tType]:(set @ X0 > set @ list @ X0 > set @ list @ X0)).
% 2.90/1.75 thf(func_def_58, type, splice: !>[X0: $tType]:(list @ X0 > list @ X0 > list @ X0)).
% 2.90/1.75 thf(func_def_59, type, suc: nat > nat).
% 2.90/1.75 thf(func_def_60, type, size_size: !>[X0: $tType]:(X0 > nat)).
% 2.90/1.75 thf(func_def_61, type, none: !>[X0: $tType]:(option @ X0)).
% 2.90/1.75 thf(func_def_62, type, some: !>[X0: $tType]:(X0 > option @ X0)).
% 2.90/1.75 thf(func_def_63, type, case_option: !>[X0: $tType, X1: $tType]:(X0 > (X1 > X0) > option @ X1 > X0)).
% 2.90/1.75 thf(func_def_64, type, size_option: !>[X0: $tType]:((X0 > nat) > option @ X0 > nat)).
% 2.90/1.75 thf(func_def_65, type, product_Pair: !>[X0: $tType, X1: $tType]:(X0 > X1 > product_prod @ X0 @ X1)).
% 2.90/1.75 thf(func_def_66, type, produc2004651681e_prod: !>[X0: $tType, X1: $tType, X2: $tType]:((X0 > X1 > X2) > product_prod @ X0 @ X1 > X2)).
% 2.90/1.75 thf(func_def_67, type, product_rec_prod: !>[X0: $tType, X1: $tType, X2: $tType]:((X0 > X1 > X2) > product_prod @ X0 @ X1 > X2)).
% 2.90/1.75 thf(func_def_68, type, tuple_742722141rphism: !>[X0: $tType, X1: $tType, X2: $tType]:((X0 > product_prod @ X1 @ X2) > (product_prod @ X1 @ X2 > X0) > tuple_isomorphism @ X0 @ X1 @ X2)).
% 2.90/1.75 thf(func_def_69, type, tuple_1907371454rphism: !>[X0: $tType, X1: $tType, X2: $tType]:((X0 > nat) > (X1 > nat) > (X2 > nat) > tuple_isomorphism @ X0 @ X1 @ X2 > nat)).
% 2.90/1.75 thf(func_def_70, type, relati1716060877e_flip: ((list @ char > int) > (list @ char > int) > $o) > (list @ char > int) > (list @ char > int) > $o).
% 2.90/1.75 thf(func_def_71, type, relati1010904253t_back: !>[X0: $tType]:(((list @ char > int) > X0 > $o) > bexp > com > nat > (list @ char > int) > X0 > $o)).
% 2.90/1.75 thf(func_def_72, type, relati1493963588_hoare: ((list @ char > int) > (list @ char > int) > $o) > com > com > ((list @ char > int) > (list @ char > int) > $o) > $o).
% 2.90/1.75 thf(func_def_73, type, relati167478067_valid: ((list @ char > int) > (list @ char > int) > $o) > com > com > ((list @ char > int) > (list @ char > int) > $o) > $o).
% 2.90/1.75 thf(func_def_74, type, collect: !>[X0: $tType]:((X0 > $o) > set @ X0)).
% 2.90/1.75 thf(func_def_75, type, sum_Inl: !>[X0: $tType, X1: $tType]:(X0 > sum_sum @ X0 @ X1)).
% 2.90/1.75 thf(func_def_76, type, sum_Inr: !>[X0: $tType, X1: $tType]:(X0 > sum_sum @ X1 @ X0)).
% 2.90/1.75 thf(func_def_77, type, typerep2: literal > list @ typerep > typerep).
% 2.90/1.75 thf(func_def_78, type, size_typerep: typerep > nat).
% 2.90/1.75 thf(func_def_79, type, member: !>[X0: $tType]:(X0 > set @ X0 > $o)).
% 2.90/1.75 thf(func_def_80, type, p: (list @ char > int) > (list @ char > int) > $o).
% 2.90/1.75 thf(func_def_81, type, q: (list @ char > int) > (list @ char > int) > $o).
% 2.90/1.75 thf(func_def_82, type, b: bexp).
% 2.90/1.75 thf(func_def_83, type, c: com).
% 2.90/1.75 thf(func_def_84, type, c2: com).
% 2.90/1.75 thf(func_def_85, type, k: nat).
% 2.90/1.75 thf(func_def_86, type, ka: nat).
% 2.90/1.75 thf(func_def_87, type, s: list @ char > int).
% 2.90/1.75 thf(func_def_88, type, s_a: list @ char > int).
% 2.90/1.75 thf(func_def_89, type, s2: list @ char > int).
% 2.90/1.75 thf(func_def_90, type, sa: list @ char > int).
% 2.90/1.75 thf(func_def_91, type, t: list @ char > int).
% 2.90/1.75 thf(func_def_92, type, t_a: list @ char > int).
% 2.90/1.75 thf(func_def_93, type, t2: list @ char > int).
% 2.90/1.75 thf(func_def_94, type, ta: list @ char > int).
% 2.90/1.75 thf(func_def_95, type, u: list @ char > int).
% 2.90/1.75 thf(func_def_96, type, ua: list @ char > int).
% 2.90/1.75 thf(func_def_116, type, sP0: com > (list @ char > int) > (nat > (list @ char > int) > (list @ char > int) > $o) > nat > bexp > com > (list @ char > int) > $o).
% 2.90/1.75 thf(func_def_117, type, sP1: (com > $o) > $o).
% 2.90/1.75 thf(func_def_118, type, sK2: (nat > $o) > nat).
% 2.90/1.75 thf(func_def_119, type, sK3: !>[X0: $tType]:(nat > list @ X0 > X0)).
% 2.90/1.75 thf(func_def_120, type, sK4: !>[X0: $tType]:(nat > list @ X0 > list @ X0)).
% 2.90/1.75 thf(func_def_121, type, sK5: nat > nat).
% 2.90/1.75 thf(func_def_122, type, sK6: com > bexp > (nat > (list @ char > int) > (list @ char > int) > $o) > nat).
% 2.90/1.75 thf(func_def_123, type, sK7: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:((product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X4)).
% 2.90/1.75 thf(func_def_124, type, sK8: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:((product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X3)).
% 2.90/1.75 thf(func_def_125, type, sK9: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:((product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X2)).
% 2.90/1.75 thf(func_def_126, type, sK10: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:((product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X1)).
% 2.90/1.75 thf(func_def_127, type, sK11: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:((product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_128, type, sK12: !>[X0: $tType, X1: $tType, X2: $tType]:((product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X2)).
% 2.90/1.75 thf(func_def_129, type, sK13: !>[X0: $tType, X1: $tType, X2: $tType]:((product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X1)).
% 2.90/1.75 thf(func_def_130, type, sK14: !>[X0: $tType, X1: $tType, X2: $tType]:((product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_131, type, sK15: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_132, type, sK16: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_133, type, sK17: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_134, type, sK18: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_135, type, sK19: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X0)).
% 2.90/1.75 thf(func_def_136, type, sK20: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X1)).
% 2.90/1.75 thf(func_def_137, type, sK21: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X2)).
% 2.90/1.75 thf(func_def_138, type, sK22: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X3)).
% 2.90/1.75 thf(func_def_139, type, sK23: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X4)).
% 2.90/1.75 thf(func_def_140, type, sK24: (list @ char > int) > (list @ char > int) > list @ char > int).
% 2.90/1.75 thf(func_def_141, type, sK25: (list @ char > int) > (list @ char > int) > list @ char > int).
% 2.90/1.75 thf(func_def_142, type, sK26: (nat > $o) > nat).
% 2.90/1.75 thf(func_def_143, type, sK27: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_144, type, sK28: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_145, type, sK29: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X0)).
% 2.90/1.75 thf(func_def_146, type, sK30: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X1)).
% 2.90/1.75 thf(func_def_147, type, sK31: com > (list @ char > int) > (nat > (list @ char > int) > (list @ char > int) > $o) > nat > bexp > com > (list @ char > int) > list @ char > int).
% 2.90/1.75 thf(func_def_148, type, sK32: com > (list @ char > int) > (nat > (list @ char > int) > (list @ char > int) > $o) > nat > bexp > com > (list @ char > int) > list @ char > int).
% 2.90/1.75 thf(func_def_149, type, sK33: com > ((list @ char > int) > (list @ char > int) > $o) > com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_150, type, sK34: com > ((list @ char > int) > (list @ char > int) > $o) > com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_151, type, sK35: com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > nat).
% 2.90/1.75 thf(func_def_152, type, sK36: com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_153, type, sK37: com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_154, type, sK38: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_155, type, sK39: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_156, type, sK40: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_157, type, sK41: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_158, type, sK42: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_159, type, sK43: !>[X0: $tType, X1: $tType, X2: $tType]:(product_prod @ X0 @ product_prod @ X1 @ X2 > X0)).
% 2.90/1.75 thf(func_def_160, type, sK44: !>[X0: $tType, X1: $tType, X2: $tType]:(product_prod @ X0 @ product_prod @ X1 @ X2 > X1)).
% 2.90/1.75 thf(func_def_161, type, sK45: !>[X0: $tType, X1: $tType, X2: $tType]:(product_prod @ X0 @ product_prod @ X1 @ X2 > X2)).
% 2.90/1.75 thf(func_def_162, type, sK46: com > com).
% 2.90/1.75 thf(func_def_163, type, sK47: com > com).
% 2.90/1.75 thf(func_def_164, type, sK48: com > bexp).
% 2.90/1.75 thf(func_def_165, type, sK49: com > com).
% 2.90/1.75 thf(func_def_166, type, sK50: com > list @ char).
% 2.90/1.75 thf(func_def_167, type, sK51: com > aexp).
% 2.90/1.75 thf(func_def_168, type, sK52: com > bexp).
% 2.90/1.75 thf(func_def_169, type, sK53: com > com).
% 2.90/1.75 thf(func_def_170, type, sK54: com > com).
% 2.90/1.75 thf(func_def_171, type, sK55: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_172, type, sK56: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_173, type, sK57: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X0)).
% 2.90/1.75 thf(func_def_174, type, sK58: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X1)).
% 2.90/1.75 thf(func_def_175, type, sK59: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_176, type, sK60: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_177, type, sK61: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_178, type, sK62: (nat > nat > $o) > nat).
% 2.90/1.75 thf(func_def_179, type, sK63: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ product_prod @ X5 @ X6 > X0)).
% 2.90/1.75 thf(func_def_180, type, sK64: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ product_prod @ X5 @ X6 > X1)).
% 2.90/1.75 thf(func_def_181, type, sK65: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ product_prod @ X5 @ X6 > X2)).
% 2.90/1.75 thf(func_def_182, type, sK66: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ product_prod @ X5 @ X6 > X3)).
% 2.90/1.75 thf(func_def_183, type, sK67: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ product_prod @ X5 @ X6 > X4)).
% 2.90/1.75 thf(func_def_184, type, sK68: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ product_prod @ X5 @ X6 > X5)).
% 2.90/1.75 thf(func_def_185, type, sK69: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ product_prod @ X5 @ X6 > X6)).
% 2.90/1.75 thf(func_def_186, type, sK70: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > list @ X0 > list @ X0 > X0 > X0)).
% 2.90/1.75 thf(func_def_187, type, sK71: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > list @ X0 > list @ X0 > X0 > list @ X0)).
% 2.90/1.75 thf(func_def_188, type, sK72: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_189, type, sK73: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_190, type, sK74: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_191, type, sK75: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_192, type, sK76: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_193, type, sK77: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_194, type, sK78: !>[X0: $tType]:(option @ X0 > (X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_195, type, sK79: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ X5 > X0)).
% 2.90/1.75 thf(func_def_196, type, sK80: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ X5 > X1)).
% 2.90/1.75 thf(func_def_197, type, sK81: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ X5 > X2)).
% 2.90/1.75 thf(func_def_198, type, sK82: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ X5 > X3)).
% 2.90/1.75 thf(func_def_199, type, sK83: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ X5 > X4)).
% 2.90/1.75 thf(func_def_200, type, sK84: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ product_prod @ X4 @ X5 > X5)).
% 2.90/1.75 thf(func_def_201, type, sK85: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > X0)).
% 2.90/1.75 thf(func_def_202, type, sK86: !>[X0: $tType]:(list @ X0 > nat > X0)).
% 2.90/1.75 thf(func_def_203, type, sK87: !>[X0: $tType]:(list @ X0 > nat > list @ X0)).
% 2.90/1.75 thf(func_def_204, type, sK88: (com > $o) > com).
% 2.90/1.75 thf(func_def_205, type, sK89: (com > $o) > com).
% 2.90/1.75 thf(func_def_206, type, sK90: (com > $o) > bexp).
% 2.90/1.75 thf(func_def_207, type, sK91: (com > $o) > com).
% 2.90/1.75 thf(func_def_208, type, sK92: (com > $o) > bexp).
% 2.90/1.75 thf(func_def_209, type, sK93: (com > $o) > com).
% 2.90/1.75 thf(func_def_210, type, sK94: (com > $o) > com).
% 2.90/1.75 thf(func_def_211, type, sK95: (com > $o) > list @ char).
% 2.90/1.75 thf(func_def_212, type, sK96: (com > $o) > aexp).
% 2.90/1.75 thf(func_def_213, type, sK97: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_214, type, sK98: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_215, type, sK99: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_216, type, sK100: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_217, type, sK101: !>[X0: $tType, X1: $tType]:((X1 > X0) > (X0 > $o) > (X1 > $o) > X1)).
% 2.90/1.75 thf(func_def_218, type, sK102: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:((product_prod @ X6 @ product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X6)).
% 2.90/1.75 thf(func_def_219, type, sK103: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:((product_prod @ X6 @ product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X5)).
% 2.90/1.75 thf(func_def_220, type, sK104: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:((product_prod @ X6 @ product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X4)).
% 2.90/1.75 thf(func_def_221, type, sK105: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:((product_prod @ X6 @ product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X3)).
% 2.90/1.75 thf(func_def_222, type, sK106: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:((product_prod @ X6 @ product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X2)).
% 2.90/1.75 thf(func_def_223, type, sK107: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:((product_prod @ X6 @ product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X1)).
% 2.90/1.75 thf(func_def_224, type, sK108: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType, X6: $tType]:((product_prod @ X6 @ product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_225, type, sK109: !>[X0: $tType, X1: $tType]:((X1 > X0) > (X1 > X0) > X1)).
% 2.90/1.75 thf(func_def_226, type, sK110: com > bexp > (nat > (list @ char > int) > (list @ char > int) > $o) > nat).
% 2.90/1.75 thf(func_def_227, type, sK111: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(X0 > X1 > (X2 > X3 > $o) > (X3 > X0) > (X2 > X1) > X2)).
% 2.90/1.75 thf(func_def_228, type, sK112: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(X0 > X1 > (X2 > X3 > $o) > (X3 > X0) > (X2 > X1) > X3)).
% 2.90/1.75 thf(func_def_229, type, sK113: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > list @ X0 > X0 > list @ X0 > list @ X0)).
% 2.90/1.75 thf(func_def_230, type, sK114: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > list @ X0 > X0 > list @ X0 > X0)).
% 2.90/1.75 thf(func_def_231, type, sK115: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > X0)).
% 2.90/1.75 thf(func_def_232, type, sK116: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > X0)).
% 2.90/1.75 thf(func_def_233, type, sK117: !>[X0: $tType]:(set @ product_prod @ X0 @ X0 > X0)).
% 2.90/1.75 thf(func_def_234, type, sK118: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:((product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X5)).
% 2.90/1.75 thf(func_def_235, type, sK119: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:((product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X4)).
% 2.90/1.75 thf(func_def_236, type, sK120: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:((product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X3)).
% 2.90/1.75 thf(func_def_237, type, sK121: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:((product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X2)).
% 2.90/1.75 thf(func_def_238, type, sK122: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:((product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X1)).
% 2.90/1.75 thf(func_def_239, type, sK123: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType, X5: $tType]:((product_prod @ X5 @ product_prod @ X4 @ product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_240, type, sK124: !>[X0: $tType]:((nat > X0 > X0 > $o) > (nat > X0 > $o) > nat > X0)).
% 2.90/1.75 thf(func_def_241, type, sK125: !>[X0: $tType]:((nat > X0 > X0 > $o) > (nat > X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_242, type, sK126: !>[X0: $tType]:((nat > X0 > X0 > $o) > (nat > X0 > $o) > nat)).
% 2.90/1.75 thf(func_def_243, type, sK127: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_244, type, sK128: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_245, type, sK129: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X1)).
% 2.90/1.75 thf(func_def_246, type, sK130: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_247, type, sK131: nat > nat).
% 2.90/1.75 thf(func_def_248, type, sK132: (list @ char > int) > (list @ char > int) > com > bexp > list @ char > int).
% 2.90/1.75 thf(func_def_249, type, sK133: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X3)).
% 2.90/1.75 thf(func_def_250, type, sK134: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X2)).
% 2.90/1.75 thf(func_def_251, type, sK135: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X1)).
% 2.90/1.75 thf(func_def_252, type, sK136: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_253, type, sK137: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_254, type, sK138: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_255, type, sK139: !>[X0: $tType]:((X0 > $o) > (X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_256, type, sK140: (list @ char > int) > (list @ char > int) > com > com > list @ char > int).
% 2.90/1.75 thf(func_def_257, type, sK141: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_258, type, sK142: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_259, type, sK143: !>[X0: $tType, X1: $tType]:(sum_sum @ X0 @ X1 > X0)).
% 2.90/1.75 thf(func_def_260, type, sK144: !>[X0: $tType, X1: $tType]:(sum_sum @ X0 @ X1 > X1)).
% 2.90/1.75 thf(func_def_261, type, sK145: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_262, type, sK146: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_263, type, sK147: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_264, type, sK148: com > com > list @ char > int).
% 2.90/1.75 thf(func_def_265, type, sK149: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X0)).
% 2.90/1.75 thf(func_def_266, type, sK150: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X1)).
% 2.90/1.75 thf(func_def_267, type, sK151: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X2)).
% 2.90/1.75 thf(func_def_268, type, sK152: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X3)).
% 2.90/1.75 thf(func_def_269, type, sK153: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_270, type, sK154: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 2.90/1.75 thf(func_def_271, type, sK155: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X1)).
% 2.90/1.75 thf(func_def_272, type, sK156: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X0)).
% 2.90/1.75 thf(func_def_273, type, sK157: (nat > $o) > nat).
% 2.90/1.75 thf(func_def_274, type, sK158: !>[X0: $tType]:(nat > list @ X0)).
% 2.90/1.75 thf(func_def_276, type, ph160: !>[X0: $tType]:(X0)).
% 2.90/1.75 thf(f1717,plain,(
% 2.90/1.75 $false),
% 2.90/1.75 inference(trivial_inequality_removal,[status(thm)],[f1716])).
% 2.90/1.75 thf(f1716,plain,(
% 2.90/1.75 ($true != $true)),
% 2.90/1.75 inference(superposition,[status(thm)],[f1714,f1529])).
% 2.90/1.75 thf(f1529,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) = $true)),
% 2.90/1.75 inference(cnf_transformation,[status(thm)],[f321])).
% 2.90/1.75 thf(f321,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) = $true)),
% 2.90/1.75 inference(fool_elimination,[status(thm)],[f320])).
% 2.90/1.75 thf(f320,plain,(
% 2.90/1.75 (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a)),
% 2.90/1.75 inference(rectify,[status(thm)],[f4])).
% 2.90/1.75 thf(f4,axiom,(
% 2.90/1.75 (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a)),
% 2.90/1.75 file('/export/starexec/sandbox/tmp/tmp.zzX3bhuTj3/DTF2THF_18316.p',fact_3_Suc_Oprems_I4_J)).
% 2.90/1.75 thf(f1714,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) != $true)),
% 2.90/1.75 inference(trivial_inequality_removal,[status(thm)],[f1713])).
% 2.90/1.75 thf(f1713,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) != $true) | ($true != $true)),
% 2.90/1.75 inference(forward_demodulation,[status(thm)],[f1712,f1512])).
% 2.90/1.75 thf(f1512,plain,(
% 2.90/1.75 ((bval @ b @ sa) = $true)),
% 2.90/1.75 inference(cnf_transformation,[status(thm)],[f601])).
% 2.90/1.75 thf(f601,plain,(
% 2.90/1.75 ((bval @ b @ sa) = $true)),
% 2.90/1.75 inference(fool_elimination,[status(thm)],[f600])).
% 2.90/1.75 thf(f600,plain,(
% 2.90/1.75 (bval @ b @ sa)),
% 2.90/1.75 inference(rectify,[status(thm)],[f1])).
% 2.90/1.75 thf(f1,axiom,(
% 2.90/1.75 (bval @ b @ sa)),
% 2.90/1.75 file('/export/starexec/sandbox/tmp/tmp.zzX3bhuTj3/DTF2THF_18316.p',fact_0_Suc_Oprems_I6_J)).
% 2.90/1.75 thf(f1712,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) != $true) | ((bval @ b @ sa) != $true)),
% 2.90/1.75 inference(trivial_inequality_removal,[status(thm)],[f1711])).
% 2.90/1.75 thf(f1711,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) != $true) | ((bval @ b @ sa) != $true) | ($true != $true)),
% 2.90/1.75 inference(forward_demodulation,[status(thm)],[f1709,f1566])).
% 2.90/1.75 thf(f1566,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ sa) @ ta) = $true)),
% 2.90/1.75 inference(cnf_transformation,[status(thm)],[f377])).
% 2.90/1.75 thf(f377,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ sa) @ ta) = $true)),
% 2.90/1.75 inference(fool_elimination,[status(thm)],[f376])).
% 2.90/1.75 thf(f376,plain,(
% 2.90/1.75 (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ sa) @ ta)),
% 2.90/1.75 inference(rectify,[status(thm)],[f3])).
% 2.90/1.75 thf(f3,axiom,(
% 2.90/1.75 (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ sa) @ ta)),
% 2.90/1.75 file('/export/starexec/sandbox/tmp/tmp.zzX3bhuTj3/DTF2THF_18316.p',fact_2_Suc_Oprems_I3_J)).
% 2.90/1.75 thf(f1709,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ sa) @ ta) != $true) | ((bval @ b @ sa) != $true) | ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) != $true)),
% 2.90/1.75 inference(trivial_inequality_removal,[status(thm)],[f1669])).
% 2.90/1.75 thf(f1669,plain,(
% 2.90/1.75 ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ sa) @ ta) != $true) | ($true != $true) | ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ s_a) @ t_a) != $true) | ((bval @ b @ sa) != $true)),
% 2.90/1.75 inference(superposition,[status(thm)],[f1257,f1592])).
% 2.90/1.75 thf(f1592,plain,(
% 2.90/1.75 ((relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ sa @ s_a) = $true)),
% 2.90/1.75 inference(cnf_transformation,[status(thm)],[f647])).
% 2.90/1.75 thf(f647,plain,(
% 2.90/1.75 ((relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ sa @ s_a) = $true)),
% 2.90/1.75 inference(fool_elimination,[status(thm)],[f646])).
% 2.90/1.75 thf(f646,plain,(
% 2.90/1.75 (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ sa @ s_a)),
% 2.90/1.75 inference(rectify,[status(thm)],[f5])).
% 2.90/1.75 thf(f5,axiom,(
% 2.90/1.75 (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ sa @ s_a)),
% 2.90/1.75 file('/export/starexec/sandbox/tmp/tmp.zzX3bhuTj3/DTF2THF_18316.p',fact_4_Suc_Oprems_I7_J)).
% 2.90/1.75 thf(f1257,plain,(
% 2.90/1.75 ( ! [X0 : list @ char > int,X1 : list @ char > int] : (($true != (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ X0 @ X1)) | ($true != (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ X0) @ ta)) | ($true != (bval @ b @ X0)) | ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ X1) @ t_a) != $true)) )),
% 2.90/1.75 inference(cnf_transformation,[status(thm)],[f930])).
% 2.90/1.75 thf(f930,plain,(
% 2.90/1.75 ! [X0 : list @ char > int,X1 : list @ char > int] : (($true != (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ X0 @ X1)) | ($true != (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ X0) @ ta)) | ($true != (bval @ b @ X0)) | ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ X1) @ t_a) != $true))),
% 2.90/1.75 inference(ennf_transformation,[status(thm)],[f515])).
% 2.90/1.75 thf(f515,plain,(
% 2.90/1.75 ~? [X0 : list @ char > int,X1 : list @ char > int] : (($true = (bval @ b @ X0)) & ($true = (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ X0) @ ta)) & ($true = (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ X0 @ X1)) & ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ X1) @ t_a) = $true))),
% 2.90/1.75 inference(fool_elimination,[status(thm)],[f514])).
% 2.90/1.75 thf(f514,plain,(
% 2.90/1.75 ~? [X0 : list @ char > int,X1 : list @ char > int] : ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ X1) @ t_a) & (bval @ b @ X0) & (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ X0 @ X1) & (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ X0) @ ta))),
% 2.90/1.75 inference(rectify,[status(thm)],[f290])).
% 2.90/1.75 thf(f290,negated_conjecture,(
% 2.90/1.75 ~? [X26 : list @ char > int,X76 : list @ char > int] : ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ X76) @ t_a) & (bval @ b @ X26) & (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ X26 @ X76) & (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ X26) @ ta))),
% 2.90/1.75 inference(negated_conjecture,[status(cth)],[f289])).
% 2.90/1.75 thf(f289,conjecture,(
% 2.90/1.75 ? [X26 : list @ char > int,X76 : list @ char > int] : ((big_big_step @ (product_Pair @ com @ (list @ char > int) @ c2 @ X76) @ t_a) & (bval @ b @ X26) & (relati1010904253t_back @ (list @ char > int) @ p @ b @ c @ (suc @ ka) @ X26 @ X76) & (big_big_step @ (product_Pair @ com @ (list @ char > int) @ c @ X26) @ ta))),
% 2.90/1.75 file('/export/starexec/sandbox/tmp/tmp.zzX3bhuTj3/DTF2THF_18316.p',conj_0)).
% 2.90/1.75 % SZS output end Proof for DTF2THF_18316
% 2.90/1.75 % (18619)------------------------------
% 2.90/1.75 % (18619)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 2.90/1.75 % (18619)Termination reason: Refutation
% 2.90/1.75
% 2.90/1.75 % (18619)Memory used [KB]: 7675
% 2.90/1.75 % (18619)Time elapsed: 0.076 s
% 2.90/1.75 % (18619)Instructions burned: 207 (million)
% 2.90/1.75 % (18619)------------------------------
% 2.90/1.75 % (18619)------------------------------
% 2.90/1.75 % (18596)Success in time 0.169 s
%------------------------------------------------------------------------------