%------------------------------------------------------------------------------
% File : DT2H2X---1.9.5
% Problem : ITP167^2 : TPTP v9.2.1. Released v7.5.0.
% Transfm : none
% Format : tptp:raw
% Command : /export/starexec/sandbox2/solver/bin/run_DT2H2X /export/starexec/sandbox2/benchmark/theBenchmark.p 300
% Computer : n029.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:06 AM UTC 2026
% Result : Theorem 4.02s 2.15s
% Output : Refutation 4.02s
% Verified :
% SZS Type : -
% Comments :
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.10 % Problem : ITP167^2 : TPTP v9.2.1. Released v7.5.0.
% 0.00/0.11 % Command : /export/starexec/sandbox2/solver/bin/run_DT2H2X /export/starexec/sandbox2/benchmark/theBenchmark.p 300
% 0.15/0.31 % Computer : n029.cluster.edu
% 0.15/0.31 % Model : x86_64 x86_64
% 0.15/0.31 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.15/0.31 % Memory : 8042.1875MB
% 0.15/0.31 % OS : Linux 3.10.0-693.el7.x86_64
% 0.15/0.31 % CPULimit : 300
% 0.15/0.31 % WCLimit : 300
% 0.15/0.31 % DateTime : Tue Feb 24 08:29:44 EST 2026
% 0.15/0.32 % CPUTime :
% 0.15/0.32 Running /export/starexec/sandbox2/solver/bin/run_DT2H2X /export/starexec/sandbox2/benchmark/theBenchmark.p 300
% 0.17/0.42 ---- Original DTF file ---
% 0.17/0.42 thf(spec,logic,$$dhol).
% 0.17/0.42 %------------------------------------------------------------------------------
% 0.17/0.42 % File : ITP167^2 : TPTP v9.2.1. Released v7.5.0.
% 0.17/0.42 % Domain : Interactive Theorem Proving
% 0.17/0.42 % Problem : Sledgehammer RelationalIncorrectness problem prob_411__5908974_1
% 0.17/0.42 % Version : Especial.
% 0.17/0.42 % English :
% 0.17/0.42
% 0.17/0.42 % Refs : [BH+15] Blanchette et al. (2015), Mining the Archive of Formal
% 0.17/0.42 % : [Des21] Desharnais (2021), Email to Geoff Sutcliffe
% 0.17/0.42 % Source : [Des21]
% 0.17/0.42 % Names : RelationalIncorrectness/prob_411__5908974_1 [Des21]
% 0.17/0.42
% 0.17/0.42 % Status : Theorem
% 0.17/0.42 % Rating : 0.33 v9.1.0, 0.00 v7.5.0
% 0.17/0.42 % Syntax : Number of formulae : 336 ( 146 unt; 56 typ; 0 def)
% 0.17/0.42 % Number of atoms : 628 ( 296 equ; 0 cnn)
% 0.17/0.42 % Maximal formula atoms : 11 ( 2 avg)
% 0.17/0.42 % Number of connectives : 4533 ( 73 ~; 7 |; 94 &;4124 @)
% 0.17/0.42 % ( 0 <=>; 235 =>; 0 <=; 0 <~>)
% 0.17/0.42 % Maximal formula depth : 28 ( 9 avg)
% 0.17/0.42 % Number of types : 7 ( 6 usr)
% 0.17/0.42 % Number of type conns : 1139 (1139 >; 0 *; 0 +; 0 <<)
% 0.17/0.42 % Number of symbols : 53 ( 50 usr; 5 con; 0-7 aty)
% 0.17/0.42 % Number of variables : 1445 ( 136 ^;1220 !; 48 ?;1445 :)
% 0.17/0.42 % ( 41 !>; 0 ?*; 0 @-; 0 @+)
% 0.17/0.42 % SPC : TH1_THM_EQU_NAR
% 0.17/0.42
% 0.17/0.42 % Comments : This file was generated by Sledgehammer 2021-02-23 16:19:30.048
% 0.17/0.42 %------------------------------------------------------------------------------
% 0.17/0.42 % Could-be-implicit typings (9)
% 0.17/0.42 thf(ty_t_Product__Type_Oprod,type,
% 0.17/0.42 product_prod: $tType > $tType > $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_String_Ochar,type,
% 0.17/0.42 char: $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_List_Olist,type,
% 0.17/0.42 list: $tType > $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_BExp_Obexp,type,
% 0.17/0.42 bexp: $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_AExp_Oaexp,type,
% 0.17/0.42 aexp: $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_Set_Oset,type,
% 0.17/0.42 set: $tType > $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_Nat_Onat,type,
% 0.17/0.42 nat: $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_Int_Oint,type,
% 0.17/0.42 int: $tType ).
% 0.17/0.42
% 0.17/0.42 thf(ty_t_Com_Ocom,type,
% 0.17/0.42 com: $tType ).
% 0.17/0.42
% 0.17/0.42 % Explicit typings (47)
% 0.17/0.42 thf(sy_cl_Groups_Ozero,type,
% 0.17/0.42 zero:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Ogroup__add,type,
% 0.17/0.42 group_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Omonoid__add,type,
% 0.17/0.42 monoid_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Osemigroup__add,type,
% 0.17/0.42 semigroup_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Ocomm__monoid__add,type,
% 0.17/0.42 comm_monoid_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Oab__semigroup__add,type,
% 0.17/0.42 ab_semigroup_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Ocancel__semigroup__add,type,
% 0.17/0.42 cancel_semigroup_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Ocancel__comm__monoid__add,type,
% 0.17/0.42 cancel1352612707id_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Olinordered__ab__group__add,type,
% 0.17/0.42 linord219039673up_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Oordered__ab__semigroup__add,type,
% 0.17/0.42 ordere779506340up_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
% 0.17/0.42 canoni770627133id_add:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,type,
% 0.17/0.42 semiri456707255roduct:
% 0.17/0.42 !>[A: $tType] : $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_AExp_Oaval,type,
% 0.17/0.42 aval: aexp > ( ( list @ char ) > int ) > int ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_BExp_Obval,type,
% 0.17/0.42 bval: bexp > ( ( list @ char ) > int ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Big__Step_Obig__step,type,
% 0.17/0.42 big_big_step: ( product_prod @ com @ ( ( list @ char ) > int ) ) > ( ( list @ char ) > int ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_OAssign,type,
% 0.17/0.42 assign: ( list @ char ) > aexp > com ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_OIf,type,
% 0.17/0.42 if: bexp > com > com > com ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_OSKIP,type,
% 0.17/0.42 skip: com ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_OSeq,type,
% 0.17/0.42 seq: com > com > com ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_OWhile,type,
% 0.17/0.42 while: bexp > com > com ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_Ocase__com,type,
% 0.17/0.42 case_com:
% 0.17/0.42 !>[A: $tType] : ( A > ( ( list @ char ) > aexp > A ) > ( com > com > A ) > ( bexp > com > com > A ) > ( bexp > com > A ) > com > A ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_Orec__com,type,
% 0.17/0.42 rec_com:
% 0.17/0.42 !>[A: $tType] : ( A > ( ( list @ char ) > aexp > A ) > ( com > com > A > A > A ) > ( bexp > com > com > A > A > A ) > ( bexp > com > A > A ) > com > A ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Com_Ocom_Osize__com,type,
% 0.17/0.42 size_com: com > nat ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Fun_Ofun__upd,type,
% 0.17/0.42 fun_upd:
% 0.17/0.42 !>[A: $tType,B: $tType] : ( ( A > B ) > A > B > A > B ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Groups_Oplus__class_Oplus,type,
% 0.17/0.42 plus_plus:
% 0.17/0.42 !>[A: $tType] : ( A > A > A ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Groups_Ozero__class_Ozero,type,
% 0.17/0.42 zero_zero:
% 0.17/0.42 !>[A: $tType] : A ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_If,type,
% 0.17/0.42 if2:
% 0.17/0.42 !>[A: $tType] : ( $o > A > A > A ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Nat_OSuc,type,
% 0.17/0.42 suc: nat > nat ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Nat_Osize__class_Osize,type,
% 0.17/0.42 size_size:
% 0.17/0.42 !>[A: $tType] : ( A > nat ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Product__Type_OPair,type,
% 0.17/0.42 product_Pair:
% 0.17/0.42 !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Product__Type_Ocurry,type,
% 0.17/0.42 product_curry:
% 0.17/0.42 !>[A: $tType,B: $tType,C: $tType] : ( ( ( product_prod @ A @ B ) > C ) > A > B > C ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Product__Type_Ointernal__case__prod,type,
% 0.17/0.42 produc2004651681e_prod:
% 0.17/0.42 !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
% 0.17/0.42 product_rec_prod:
% 0.17/0.42 !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Product__Type_Oprod_Ocase__prod,type,
% 0.17/0.42 product_case_prod:
% 0.17/0.42 !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Product__Type_Oprod_Oswap,type,
% 0.17/0.42 product_swap:
% 0.17/0.42 !>[A: $tType,B: $tType] : ( ( product_prod @ A @ B ) > ( product_prod @ B @ A ) ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Odecomp,type,
% 0.17/0.42 relati332478480decomp: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oflip,type,
% 0.17/0.42 relati1716060877e_flip: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oget__back,type,
% 0.17/0.42 relati1010904253t_back:
% 0.17/0.42 !>[A: $tType] : ( ( ( ( list @ char ) > int ) > A > $o ) > bexp > com > nat > ( ( list @ char ) > int ) > A > $o ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__hoare,type,
% 0.17/0.42 relati1493963588_hoare: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__valid,type,
% 0.17/0.42 relati167478067_valid: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Set_OCollect,type,
% 0.17/0.42 collect:
% 0.17/0.42 !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_Set_Oimage,type,
% 0.17/0.42 image:
% 0.17/0.42 !>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ A ) > ( set @ B ) ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_c_member,type,
% 0.17/0.42 member:
% 0.17/0.42 !>[A: $tType] : ( A > ( set @ A ) > $o ) ).
% 0.17/0.42
% 0.17/0.42 thf(sy_v_P,type,
% 0.17/0.42 p: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_v_Q,type,
% 0.17/0.42 q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 0.17/0.42
% 0.17/0.42 thf(sy_v_c,type,
% 0.17/0.42 c: com ).
% 0.17/0.42
% 0.17/0.42 thf(sy_v_c_H,type,
% 0.17/0.42 c2: com ).
% 0.17/0.42
% 0.17/0.42 % Relevant facts (255)
% 0.17/0.42 thf(fact_0_soundness,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % soundness
% 0.17/0.42 thf(fact_1_completeness,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( relati1493963588_hoare @ P @ C2 @ C3 @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % completeness
% 0.17/0.42 thf(fact_2_ir__valid__decomp,axiom,
% 0.17/0.42 ( relati167478067_valid
% 0.17/0.42 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ P2 @ C4 @ skip @ ( relati332478480decomp @ P2 @ C4 @ C5 @ Q2 ) )
% 0.17/0.42 & ( relati167478067_valid @ ( relati332478480decomp @ P2 @ C4 @ C5 @ Q2 ) @ skip @ C5 @ Q2 ) ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_valid_decomp
% 0.17/0.42 thf(fact_3_ir__Skip__Skip,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] : ( relati1493963588_hoare @ P @ skip @ skip @ P ) ).
% 0.17/0.42
% 0.17/0.42 % ir_Skip_Skip
% 0.17/0.42 thf(fact_4_ir__hoare__Skip__Skip,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati1493963588_hoare @ P @ skip @ skip @ Q )
% 0.17/0.42 = ( ! [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q @ S @ S2 )
% 0.17/0.42 => ( P @ S @ S2 ) ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_hoare_Skip_Skip
% 0.17/0.42 thf(fact_5_ir__pre,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.17/0.42 ( ( P @ S3 @ S4 )
% 0.17/0.42 => ( P3 @ S3 @ S4 ) )
% 0.17/0.42 => ( relati1493963588_hoare @ P3 @ C2 @ C3 @ Q ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_pre
% 0.17/0.42 thf(fact_6_ir__post,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q3 @ S3 @ S4 )
% 0.17/0.42 => ( Q @ S3 @ S4 ) )
% 0.17/0.42 => ( relati1493963588_hoare @ P @ C2 @ C3 @ Q3 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_post
% 0.17/0.42 thf(fact_7_ir__conseq,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.17/0.42 ( ( P @ S3 @ S4 )
% 0.17/0.42 => ( P3 @ S3 @ S4 ) )
% 0.17/0.42 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q3 @ S3 @ S4 )
% 0.17/0.42 => ( Q @ S3 @ S4 ) )
% 0.17/0.42 => ( relati1493963588_hoare @ P3 @ C2 @ C3 @ Q3 ) ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_conseq
% 0.17/0.42 thf(fact_8_ir__valid__decomp1,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ( relati167478067_valid @ P @ C2 @ skip @ ( relati332478480decomp @ P @ C2 @ C3 @ Q ) )
% 0.17/0.42 & ( relati167478067_valid @ ( relati332478480decomp @ P @ C2 @ C3 @ Q ) @ skip @ C3 @ Q ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_valid_decomp1
% 0.17/0.42 thf(fact_9_ir__valid__decomp2,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( ( relati167478067_valid @ P @ C2 @ skip @ R )
% 0.17/0.42 & ( relati167478067_valid @ R @ skip @ C3 @ Q ) )
% 0.17/0.42 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_valid_decomp2
% 0.17/0.42 thf(fact_10_ir__Seq1,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ( relati1493963588_hoare @ Q @ D @ skip @ R )
% 0.17/0.42 => ( relati1493963588_hoare @ P @ ( seq @ C2 @ D ) @ C3 @ R ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_Seq1
% 0.17/0.42 thf(fact_11_ir__sym,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati1493963588_hoare @ ( relati1716060877e_flip @ P ) @ C2 @ C3 @ ( relati1716060877e_flip @ Q ) )
% 0.17/0.42 => ( relati1493963588_hoare @ P @ C3 @ C2 @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_sym
% 0.17/0.42 thf(fact_12_Seq1__ir__valid,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ( relati167478067_valid @ Q @ D @ skip @ R )
% 0.17/0.42 => ( relati167478067_valid @ P @ ( seq @ C2 @ D ) @ C3 @ R ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % Seq1_ir_valid
% 0.17/0.42 thf(fact_13_Seq2__ir__valid,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,C3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ P @ C2 @ skip @ Q )
% 0.17/0.42 => ( ( relati167478067_valid @ Q @ D @ C3 @ R )
% 0.17/0.42 => ( relati167478067_valid @ P @ ( seq @ C2 @ D ) @ C3 @ R ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % Seq2_ir_valid
% 0.17/0.42 thf(fact_14_conseq__ir__valid,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.17/0.42 ( ( P @ S3 @ S4 )
% 0.17/0.42 => ( P3 @ S3 @ S4 ) )
% 0.17/0.42 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q3 @ S3 @ S4 )
% 0.17/0.42 => ( Q @ S3 @ S4 ) )
% 0.17/0.42 => ( relati167478067_valid @ P3 @ C2 @ C3 @ Q3 ) ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % conseq_ir_valid
% 0.17/0.42 thf(fact_15_com_Osimps_I25_J,axiom,
% 0.17/0.42 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A] :
% 0.17/0.42 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ skip )
% 0.17/0.42 = F1 ) ).
% 0.17/0.42
% 0.17/0.42 % com.simps(25)
% 0.17/0.42 thf(fact_16_com_Osimps_I30_J,axiom,
% 0.17/0.42 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A] :
% 0.17/0.42 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ skip )
% 0.17/0.42 = F1 ) ).
% 0.17/0.42
% 0.17/0.42 % com.simps(30)
% 0.17/0.42 thf(fact_17_ir__Skip__sym,axiom,
% 0.17/0.42 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 0.17/0.42 ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q @ T3 @ T2 )
% 0.17/0.42 => ? [S5: ( list @ char ) > int] :
% 0.17/0.42 ( ( P @ S5 @ T2 )
% 0.17/0.42 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 0.17/0.42 => ( relati1493963588_hoare @ P @ C3 @ skip @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_Skip_sym
% 0.17/0.42 thf(fact_18_ir__Skip,axiom,
% 0.17/0.42 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 0.17/0.42 ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q @ T2 @ T3 )
% 0.17/0.42 => ? [S5: ( list @ char ) > int] :
% 0.17/0.42 ( ( P @ T2 @ S5 )
% 0.17/0.42 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 0.17/0.42 => ( relati1493963588_hoare @ P @ skip @ C3 @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_Skip
% 0.17/0.42 thf(fact_19_com_Odistinct_I1_J,axiom,
% 0.17/0.42 ! [X21: list @ char,X22: aexp] :
% 0.17/0.42 ( skip
% 0.17/0.42 != ( assign @ X21 @ X22 ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.distinct(1)
% 0.17/0.42 thf(fact_20_com_Oinject_I2_J,axiom,
% 0.17/0.42 ! [X31: com,X32: com,Y31: com,Y32: com] :
% 0.17/0.42 ( ( ( seq @ X31 @ X32 )
% 0.17/0.42 = ( seq @ Y31 @ Y32 ) )
% 0.17/0.42 = ( ( X31 = Y31 )
% 0.17/0.42 & ( X32 = Y32 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.inject(2)
% 0.17/0.42 thf(fact_21_com_Oinject_I1_J,axiom,
% 0.17/0.42 ! [X21: list @ char,X22: aexp,Y21: list @ char,Y22: aexp] :
% 0.17/0.42 ( ( ( assign @ X21 @ X22 )
% 0.17/0.42 = ( assign @ Y21 @ Y22 ) )
% 0.17/0.42 = ( ( X21 = Y21 )
% 0.17/0.42 & ( X22 = Y22 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.inject(1)
% 0.17/0.42 thf(fact_22_Seq__ir__valid,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,D2: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.17/0.42 => ( ( relati167478067_valid @ Q @ D @ D2 @ R )
% 0.17/0.42 => ( relati167478067_valid @ P @ ( seq @ C2 @ D ) @ ( seq @ C3 @ D2 ) @ R ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % Seq_ir_valid
% 0.17/0.42 thf(fact_23_sym__ir__valid,axiom,
% 0.17/0.42 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ( ( relati167478067_valid @ ( relati1716060877e_flip @ P ) @ C3 @ C2 @ ( relati1716060877e_flip @ Q ) )
% 0.17/0.42 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % sym_ir_valid
% 0.17/0.42 thf(fact_24_meh__simp,axiom,
% 0.17/0.42 ! [S6: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S6 ) @ T4 )
% 0.17/0.42 = ( S6 = T4 ) ) ).
% 0.17/0.42
% 0.17/0.42 % meh_simp
% 0.17/0.42 thf(fact_25_Skip__ir__valid,axiom,
% 0.17/0.42 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 0.17/0.42 ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q @ T2 @ T3 )
% 0.17/0.42 => ? [S5: ( list @ char ) > int] :
% 0.17/0.42 ( ( P @ T2 @ S5 )
% 0.17/0.42 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 0.17/0.42 => ( relati167478067_valid @ P @ skip @ C3 @ Q ) ) ).
% 0.17/0.42
% 0.17/0.42 % Skip_ir_valid
% 0.17/0.42 thf(fact_26_com_Osimps_I32_J,axiom,
% 0.17/0.42 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X31: com,X32: com] :
% 0.17/0.42 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( seq @ X31 @ X32 ) )
% 0.17/0.42 = ( F3 @ X31 @ X32 @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X31 ) @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X32 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.simps(32)
% 0.17/0.42 thf(fact_27_com_Osimps_I31_J,axiom,
% 0.17/0.42 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X21: list @ char,X22: aexp] :
% 0.17/0.42 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( assign @ X21 @ X22 ) )
% 0.17/0.42 = ( F2 @ X21 @ X22 ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.simps(31)
% 0.17/0.42 thf(fact_28_com_Osimps_I27_J,axiom,
% 0.17/0.42 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X31: com,X32: com] :
% 0.17/0.42 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( seq @ X31 @ X32 ) )
% 0.17/0.42 = ( F3 @ X31 @ X32 ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.simps(27)
% 0.17/0.42 thf(fact_29_com_Osimps_I26_J,axiom,
% 0.17/0.42 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X21: list @ char,X22: aexp] :
% 0.17/0.42 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( assign @ X21 @ X22 ) )
% 0.17/0.42 = ( F2 @ X21 @ X22 ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.simps(26)
% 0.17/0.42 thf(fact_30_com_Odistinct_I9_J,axiom,
% 0.17/0.42 ! [X21: list @ char,X22: aexp,X31: com,X32: com] :
% 0.17/0.42 ( ( assign @ X21 @ X22 )
% 0.17/0.42 != ( seq @ X31 @ X32 ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.distinct(9)
% 0.17/0.42 thf(fact_31_ir__valid__def,axiom,
% 0.17/0.42 ( relati167478067_valid
% 0.17/0.42 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.42 ! [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.42 ( ( Q2 @ T5 @ T6 )
% 0.17/0.42 => ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.42 ( ( P2 @ S @ S2 )
% 0.17/0.42 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C4 @ S ) @ T5 )
% 0.17/0.42 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C5 @ S2 ) @ T6 ) ) ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % ir_valid_def
% 0.17/0.42 thf(fact_32_com_Odistinct_I3_J,axiom,
% 0.17/0.42 ! [X31: com,X32: com] :
% 0.17/0.42 ( skip
% 0.17/0.42 != ( seq @ X31 @ X32 ) ) ).
% 0.17/0.42
% 0.17/0.42 % com.distinct(3)
% 0.17/0.42 thf(fact_33_SeqE,axiom,
% 0.17/0.42 ! [C1: com,C22: com,S1: ( list @ char ) > int,S32: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ C22 ) @ S1 ) @ S32 )
% 0.17/0.42 => ~ ! [S_2: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S1 ) @ S_2 )
% 0.17/0.42 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S_2 ) @ S32 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % SeqE
% 0.17/0.42 thf(fact_34_Seq__assoc,axiom,
% 0.17/0.42 ! [C1: com,C22: com,C32: com,S7: ( list @ char ) > int,S6: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ ( seq @ C1 @ C22 ) @ C32 ) @ S7 ) @ S6 )
% 0.17/0.42 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ ( seq @ C22 @ C32 ) ) @ S7 ) @ S6 ) ) ).
% 0.17/0.42
% 0.17/0.42 % Seq_assoc
% 0.17/0.42 thf(fact_35_Seq,axiom,
% 0.17/0.42 ! [C_1: com,S_1: ( list @ char ) > int,S_22: ( list @ char ) > int,C_2: com,S_3: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S_1 ) @ S_22 )
% 0.17/0.42 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S_22 ) @ S_3 )
% 0.17/0.42 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C_1 @ C_2 ) @ S_1 ) @ S_3 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % Seq
% 0.17/0.42 thf(fact_36_SkipE,axiom,
% 0.17/0.42 ! [S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S7 ) @ T7 )
% 0.17/0.42 => ( T7 = S7 ) ) ).
% 0.17/0.42
% 0.17/0.42 % SkipE
% 0.17/0.42 thf(fact_37_Skip,axiom,
% 0.17/0.42 ! [S7: ( list @ char ) > int] : ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S7 ) @ S7 ) ).
% 0.17/0.42
% 0.17/0.42 % Skip
% 0.17/0.42 thf(fact_38_prod_Oinject,axiom,
% 0.17/0.42 ! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y2: B] :
% 0.17/0.42 ( ( ( product_Pair @ A @ B @ X1 @ X2 )
% 0.17/0.42 = ( product_Pair @ A @ B @ Y1 @ Y2 ) )
% 0.17/0.42 = ( ( X1 = Y1 )
% 0.17/0.42 & ( X2 = Y2 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % prod.inject
% 0.17/0.42 thf(fact_39_old_Oprod_Oinject,axiom,
% 0.17/0.42 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 0.17/0.42 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 0.17/0.42 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 0.17/0.42 = ( ( A2 = A3 )
% 0.17/0.42 & ( B2 = B3 ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % old.prod.inject
% 0.17/0.42 thf(fact_40_sim__sym,axiom,
% 0.17/0.42 ! [C2: com,C3: com] :
% 0.17/0.42 ( ( ! [S: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 )
% 0.17/0.42 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S ) @ T5 ) ) )
% 0.17/0.42 = ( ! [S: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S ) @ T5 )
% 0.17/0.42 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 ) ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % sim_sym
% 0.17/0.42 thf(fact_41_sim__refl,axiom,
% 0.17/0.42 ! [C2: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 )
% 0.17/0.42 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 ) ) ).
% 0.17/0.42
% 0.17/0.42 % sim_refl
% 0.17/0.42 thf(fact_42_sim__trans,axiom,
% 0.17/0.42 ! [C2: com,C3: com,C6: com] :
% 0.17/0.42 ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T2 )
% 0.17/0.42 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 ) )
% 0.17/0.42 => ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 )
% 0.17/0.42 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C6 @ S3 ) @ T2 ) )
% 0.17/0.42 => ! [S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.17/0.42 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 )
% 0.17/0.42 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C6 @ S8 ) @ T8 ) ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % sim_trans
% 0.17/0.42 thf(fact_43_old_Oprod_Oinducts,axiom,
% 0.17/0.42 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
% 0.17/0.42 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 0.17/0.42 => ( P @ Prod ) ) ).
% 0.17/0.42
% 0.17/0.42 % old.prod.inducts
% 0.17/0.42 thf(fact_44_old_Oprod_Oexhaust,axiom,
% 0.17/0.42 ! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
% 0.17/0.42 ~ ! [A4: A,B4: B] :
% 0.17/0.42 ( Y
% 0.17/0.42 != ( product_Pair @ A @ B @ A4 @ B4 ) ) ).
% 0.17/0.42
% 0.17/0.42 % old.prod.exhaust
% 0.17/0.42 thf(fact_45_mem__Collect__eq,axiom,
% 0.17/0.42 ! [A: $tType,A2: A,P: A > $o] :
% 0.17/0.42 ( ( member @ A @ A2 @ ( collect @ A @ P ) )
% 0.17/0.42 = ( P @ A2 ) ) ).
% 0.17/0.42
% 0.17/0.42 % mem_Collect_eq
% 0.17/0.42 thf(fact_46_Collect__mem__eq,axiom,
% 0.17/0.42 ! [A: $tType,A5: set @ A] :
% 0.17/0.42 ( ( collect @ A
% 0.17/0.42 @ ^ [X: A] : ( member @ A @ X @ A5 ) )
% 0.17/0.42 = A5 ) ).
% 0.17/0.42
% 0.17/0.42 % Collect_mem_eq
% 0.17/0.42 thf(fact_47_Collect__cong,axiom,
% 0.17/0.42 ! [A: $tType,P: A > $o,Q: A > $o] :
% 0.17/0.42 ( ! [X3: A] :
% 0.17/0.42 ( ( P @ X3 )
% 0.17/0.42 = ( Q @ X3 ) )
% 0.17/0.42 => ( ( collect @ A @ P )
% 0.17/0.42 = ( collect @ A @ Q ) ) ) ).
% 0.17/0.42
% 0.17/0.42 % Collect_cong
% 0.17/0.42 thf(fact_48_ext,axiom,
% 0.17/0.42 ! [B: $tType,A: $tType,F: A > B,G: A > B] :
% 0.17/0.42 ( ! [X3: A] :
% 0.17/0.42 ( ( F @ X3 )
% 0.17/0.42 = ( G @ X3 ) )
% 0.17/0.42 => ( F = G ) ) ).
% 0.17/0.42
% 0.17/0.42 % ext
% 0.17/0.42 thf(fact_49_prod__induct7,axiom,
% 0.17/0.42 ! [G2: $tType,F6: $tType,E: $tType,D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) )] :
% 0.17/0.43 ( ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6,G3: G2] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) @ D4 @ ( product_Pair @ E @ ( product_prod @ F6 @ G2 ) @ E2 @ ( product_Pair @ F6 @ G2 @ F7 @ G3 ) ) ) ) ) ) )
% 0.17/0.43 => ( P @ X4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_induct7
% 0.17/0.43 thf(fact_50_prod__induct6,axiom,
% 0.17/0.43 ! [F6: $tType,E: $tType,D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) )] :
% 0.17/0.43 ( ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ F6 ) @ D4 @ ( product_Pair @ E @ F6 @ E2 @ F7 ) ) ) ) ) )
% 0.17/0.43 => ( P @ X4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_induct6
% 0.17/0.43 thf(fact_51_prod__induct5,axiom,
% 0.17/0.43 ! [E: $tType,D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) )] :
% 0.17/0.43 ( ! [A4: A,B4: B,C7: C,D4: D3,E2: E] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ E ) @ C7 @ ( product_Pair @ D3 @ E @ D4 @ E2 ) ) ) ) )
% 0.17/0.43 => ( P @ X4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_induct5
% 0.17/0.43 thf(fact_52_prod__induct4,axiom,
% 0.17/0.43 ! [D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) )] :
% 0.17/0.43 ( ! [A4: A,B4: B,C7: C,D4: D3] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D3 ) @ B4 @ ( product_Pair @ C @ D3 @ C7 @ D4 ) ) ) )
% 0.17/0.43 => ( P @ X4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_induct4
% 0.17/0.43 thf(fact_53_prod__induct3,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ C )] :
% 0.17/0.43 ( ! [A4: A,B4: B,C7: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C7 ) ) )
% 0.17/0.43 => ( P @ X4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_induct3
% 0.17/0.43 thf(fact_54_prod__cases7,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,D3: $tType,E: $tType,F6: $tType,G2: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) )] :
% 0.17/0.43 ~ ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6,G3: G2] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) @ D4 @ ( product_Pair @ E @ ( product_prod @ F6 @ G2 ) @ E2 @ ( product_Pair @ F6 @ G2 @ F7 @ G3 ) ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_cases7
% 0.17/0.43 thf(fact_55_prod__cases6,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,D3: $tType,E: $tType,F6: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) )] :
% 0.17/0.43 ~ ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ F6 ) @ D4 @ ( product_Pair @ E @ F6 @ E2 @ F7 ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_cases6
% 0.17/0.43 thf(fact_56_prod__cases5,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,D3: $tType,E: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) )] :
% 0.17/0.43 ~ ! [A4: A,B4: B,C7: C,D4: D3,E2: E] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ E ) @ C7 @ ( product_Pair @ D3 @ E @ D4 @ E2 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_cases5
% 0.17/0.43 thf(fact_57_prod__cases4,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,D3: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) )] :
% 0.17/0.43 ~ ! [A4: A,B4: B,C7: C,D4: D3] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D3 ) @ B4 @ ( product_Pair @ C @ D3 @ C7 @ D4 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_cases4
% 0.17/0.43 thf(fact_58_prod__cases3,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
% 0.17/0.43 ~ ! [A4: A,B4: B,C7: C] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C7 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_cases3
% 0.17/0.43 thf(fact_59_Pair__inject,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 0.17/0.43 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 0.17/0.43 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 0.17/0.43 => ~ ( ( A2 = A3 )
% 0.17/0.43 => ( B2 != B3 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % Pair_inject
% 0.17/0.43 thf(fact_60_prod__cases,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P4: product_prod @ A @ B] :
% 0.17/0.43 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 0.17/0.43 => ( P @ P4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod_cases
% 0.17/0.43 thf(fact_61_surj__pair,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,P4: product_prod @ A @ B] :
% 0.17/0.43 ? [X3: A,Y3: B] :
% 0.17/0.43 ( P4
% 0.17/0.43 = ( product_Pair @ A @ B @ X3 @ Y3 ) ) ).
% 0.17/0.43
% 0.17/0.43 % surj_pair
% 0.17/0.43 thf(fact_62_big__step__determ,axiom,
% 0.17/0.43 ! [C2: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int,U: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S7 ) @ T7 )
% 0.17/0.43 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S7 ) @ U )
% 0.17/0.43 => ( U = T7 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % big_step_determ
% 0.17/0.43 thf(fact_63_old_Oprod_Orec,axiom,
% 0.17/0.43 ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A2: A,B2: B] :
% 0.17/0.43 ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 0.17/0.43 = ( F1 @ A2 @ B2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % old.prod.rec
% 0.17/0.43 thf(fact_64_internal__case__prod__conv,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,C: $tType,C2: B > C > A,A2: B,B2: C] :
% 0.17/0.43 ( ( produc2004651681e_prod @ B @ C @ A @ C2 @ ( product_Pair @ B @ C @ A2 @ B2 ) )
% 0.17/0.43 = ( C2 @ A2 @ B2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % internal_case_prod_conv
% 0.17/0.43 thf(fact_65_ssubst__Pair__rhs,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,R2: A,S7: B,R: set @ ( product_prod @ A @ B ),S6: B] :
% 0.17/0.43 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S7 ) @ R )
% 0.17/0.43 => ( ( S6 = S7 )
% 0.17/0.43 => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S6 ) @ R ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ssubst_Pair_rhs
% 0.17/0.43 thf(fact_66_curry__conv,axiom,
% 0.17/0.43 ! [A: $tType,C: $tType,B: $tType] :
% 0.17/0.43 ( ( product_curry @ B @ C @ A )
% 0.17/0.43 = ( ^ [F8: ( product_prod @ B @ C ) > A,A6: B,B5: C] : ( F8 @ ( product_Pair @ B @ C @ A6 @ B5 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % curry_conv
% 0.17/0.43 thf(fact_67_commute__if,axiom,
% 0.17/0.43 ! [B1: bexp,B22: bexp,C11: com,C12: com,C22: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B1 @ ( if @ B22 @ C11 @ C12 ) @ C22 ) @ S8 ) @ T8 )
% 0.17/0.43 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B22 @ ( if @ B1 @ C11 @ C22 ) @ ( if @ B1 @ C12 @ C22 ) ) @ S8 ) @ T8 ) ) ).
% 0.17/0.43
% 0.17/0.43 % commute_if
% 0.17/0.43 thf(fact_68_triv__if,axiom,
% 0.17/0.43 ! [B2: bexp,C2: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C2 @ C2 ) @ S8 ) @ T8 )
% 0.17/0.43 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 ) ) ).
% 0.17/0.43
% 0.17/0.43 % triv_if
% 0.17/0.43 thf(fact_69_curryI,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
% 0.17/0.43 ( ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 0.17/0.43 => ( product_curry @ A @ B @ $o @ F @ A2 @ B2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % curryI
% 0.17/0.43 thf(fact_70_while__unfold,axiom,
% 0.17/0.43 ! [B2: bexp,C2: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S8 ) @ T8 )
% 0.17/0.43 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ ( seq @ C2 @ ( while @ B2 @ C2 ) ) @ skip ) @ S8 ) @ T8 ) ) ).
% 0.17/0.43
% 0.17/0.43 % while_unfold
% 0.17/0.43 thf(fact_71_com_Oinject_I4_J,axiom,
% 0.17/0.43 ! [X51: bexp,X52: com,Y51: bexp,Y52: com] :
% 0.17/0.43 ( ( ( while @ X51 @ X52 )
% 0.17/0.43 = ( while @ Y51 @ Y52 ) )
% 0.17/0.43 = ( ( X51 = Y51 )
% 0.17/0.43 & ( X52 = Y52 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.inject(4)
% 0.17/0.43 thf(fact_72_com_Oinject_I3_J,axiom,
% 0.17/0.43 ! [X41: bexp,X42: com,X43: com,Y41: bexp,Y42: com,Y43: com] :
% 0.17/0.43 ( ( ( if @ X41 @ X42 @ X43 )
% 0.17/0.43 = ( if @ Y41 @ Y42 @ Y43 ) )
% 0.17/0.43 = ( ( X41 = Y41 )
% 0.17/0.43 & ( X42 = Y42 )
% 0.17/0.43 & ( X43 = Y43 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.inject(3)
% 0.17/0.43 thf(fact_73_com_Odistinct_I19_J,axiom,
% 0.17/0.43 ! [X41: bexp,X42: com,X43: com,X51: bexp,X52: com] :
% 0.17/0.43 ( ( if @ X41 @ X42 @ X43 )
% 0.17/0.43 != ( while @ X51 @ X52 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.distinct(19)
% 0.17/0.43 thf(fact_74_com_Odistinct_I7_J,axiom,
% 0.17/0.43 ! [X51: bexp,X52: com] :
% 0.17/0.43 ( skip
% 0.17/0.43 != ( while @ X51 @ X52 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.distinct(7)
% 0.17/0.43 thf(fact_75_com_Odistinct_I17_J,axiom,
% 0.17/0.43 ! [X31: com,X32: com,X51: bexp,X52: com] :
% 0.17/0.43 ( ( seq @ X31 @ X32 )
% 0.17/0.43 != ( while @ X51 @ X52 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.distinct(17)
% 0.17/0.43 thf(fact_76_com_Odistinct_I13_J,axiom,
% 0.17/0.43 ! [X21: list @ char,X22: aexp,X51: bexp,X52: com] :
% 0.17/0.43 ( ( assign @ X21 @ X22 )
% 0.17/0.43 != ( while @ X51 @ X52 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.distinct(13)
% 0.17/0.43 thf(fact_77_com_Osimps_I29_J,axiom,
% 0.17/0.43 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X51: bexp,X52: com] :
% 0.17/0.43 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( while @ X51 @ X52 ) )
% 0.17/0.43 = ( F5 @ X51 @ X52 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.simps(29)
% 0.17/0.43 thf(fact_78_com_Osimps_I34_J,axiom,
% 0.17/0.43 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X51: bexp,X52: com] :
% 0.17/0.43 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( while @ X51 @ X52 ) )
% 0.17/0.43 = ( F5 @ X51 @ X52 @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X52 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.simps(34)
% 0.17/0.43 thf(fact_79_com_Odistinct_I5_J,axiom,
% 0.17/0.43 ! [X41: bexp,X42: com,X43: com] :
% 0.17/0.43 ( skip
% 0.17/0.43 != ( if @ X41 @ X42 @ X43 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.distinct(5)
% 0.17/0.43 thf(fact_80_com_Odistinct_I15_J,axiom,
% 0.17/0.43 ! [X31: com,X32: com,X41: bexp,X42: com,X43: com] :
% 0.17/0.43 ( ( seq @ X31 @ X32 )
% 0.17/0.43 != ( if @ X41 @ X42 @ X43 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.distinct(15)
% 0.17/0.43 thf(fact_81_com_Odistinct_I11_J,axiom,
% 0.17/0.43 ! [X21: list @ char,X22: aexp,X41: bexp,X42: com,X43: com] :
% 0.17/0.43 ( ( assign @ X21 @ X22 )
% 0.17/0.43 != ( if @ X41 @ X42 @ X43 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.distinct(11)
% 0.17/0.43 thf(fact_82_com_Osimps_I28_J,axiom,
% 0.17/0.43 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X41: bexp,X42: com,X43: com] :
% 0.17/0.43 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( if @ X41 @ X42 @ X43 ) )
% 0.17/0.43 = ( F4 @ X41 @ X42 @ X43 ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.simps(28)
% 0.17/0.43 thf(fact_83_curryD,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
% 0.17/0.43 ( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
% 0.17/0.43 => ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % curryD
% 0.17/0.43 thf(fact_84_curryE,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
% 0.17/0.43 ( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
% 0.17/0.43 => ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % curryE
% 0.17/0.43 thf(fact_85_com_Osimps_I33_J,axiom,
% 0.17/0.43 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X41: bexp,X42: com,X43: com] :
% 0.17/0.43 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( if @ X41 @ X42 @ X43 ) )
% 0.17/0.43 = ( F4 @ X41 @ X42 @ X43 @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X42 ) @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X43 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.simps(33)
% 0.17/0.43 thf(fact_86_com_Oinduct,axiom,
% 0.17/0.43 ! [P: com > $o,Com: com] :
% 0.17/0.43 ( ( P @ skip )
% 0.17/0.43 => ( ! [X12: list @ char,X23: aexp] : ( P @ ( assign @ X12 @ X23 ) )
% 0.17/0.43 => ( ! [X12: com,X23: com] :
% 0.17/0.43 ( ( P @ X12 )
% 0.17/0.43 => ( ( P @ X23 )
% 0.17/0.43 => ( P @ ( seq @ X12 @ X23 ) ) ) )
% 0.17/0.43 => ( ! [X12: bexp,X23: com,X33: com] :
% 0.17/0.43 ( ( P @ X23 )
% 0.17/0.43 => ( ( P @ X33 )
% 0.17/0.43 => ( P @ ( if @ X12 @ X23 @ X33 ) ) ) )
% 0.17/0.43 => ( ! [X12: bexp,X23: com] :
% 0.17/0.43 ( ( P @ X23 )
% 0.17/0.43 => ( P @ ( while @ X12 @ X23 ) ) )
% 0.17/0.43 => ( P @ Com ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.induct
% 0.17/0.43 thf(fact_87_com_Oexhaust,axiom,
% 0.17/0.43 ! [Y: com] :
% 0.17/0.43 ( ( Y != skip )
% 0.17/0.43 => ( ! [X212: list @ char,X222: aexp] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( assign @ X212 @ X222 ) )
% 0.17/0.43 => ( ! [X312: com,X322: com] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( seq @ X312 @ X322 ) )
% 0.17/0.43 => ( ! [X412: bexp,X422: com,X432: com] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( if @ X412 @ X422 @ X432 ) )
% 0.17/0.43 => ~ ! [X512: bexp,X522: com] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( while @ X512 @ X522 ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.exhaust
% 0.17/0.43 thf(fact_88_sim__while__cong,axiom,
% 0.17/0.43 ! [C2: com,C3: com,B2: bexp] :
% 0.17/0.43 ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T2 )
% 0.17/0.43 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 ) )
% 0.17/0.43 => ! [S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S8 ) @ T8 )
% 0.17/0.43 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S8 ) @ T8 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % sim_while_cong
% 0.17/0.43 thf(fact_89_sim__while__cong__aux,axiom,
% 0.17/0.43 ! [B2: bexp,C2: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int,C3: com] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S7 ) @ T7 )
% 0.17/0.43 => ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T2 )
% 0.17/0.43 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 ) )
% 0.17/0.43 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S7 ) @ T7 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % sim_while_cong_aux
% 0.17/0.43 thf(fact_90_IfE,axiom,
% 0.17/0.43 ! [B2: bexp,C1: com,C22: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C1 @ C22 ) @ S7 ) @ T7 )
% 0.17/0.43 => ( ( ( bval @ B2 @ S7 )
% 0.17/0.43 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S7 ) @ T7 ) )
% 0.17/0.43 => ~ ( ~ ( bval @ B2 @ S7 )
% 0.17/0.43 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S7 ) @ T7 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % IfE
% 0.17/0.43 thf(fact_91_IfTrue,axiom,
% 0.17/0.43 ! [B2: bexp,S7: ( list @ char ) > int,C_1: com,T7: ( list @ char ) > int,C_2: com] :
% 0.17/0.43 ( ( bval @ B2 @ S7 )
% 0.17/0.43 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S7 ) @ T7 )
% 0.17/0.43 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S7 ) @ T7 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % IfTrue
% 0.17/0.43 thf(fact_92_IfFalse,axiom,
% 0.17/0.43 ! [B2: bexp,S7: ( list @ char ) > int,C_2: com,T7: ( list @ char ) > int,C_1: com] :
% 0.17/0.43 ( ~ ( bval @ B2 @ S7 )
% 0.17/0.43 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S7 ) @ T7 )
% 0.17/0.43 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S7 ) @ T7 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % IfFalse
% 0.17/0.43 thf(fact_93_WhileE,axiom,
% 0.17/0.43 ! [B2: bexp,C2: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S7 ) @ T7 )
% 0.17/0.43 => ( ( ( T7 = S7 )
% 0.17/0.43 => ( bval @ B2 @ S7 ) )
% 0.17/0.43 => ~ ( ( bval @ B2 @ S7 )
% 0.17/0.43 => ! [S_2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S7 ) @ S_2 )
% 0.17/0.43 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_2 ) @ T7 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % WhileE
% 0.17/0.43 thf(fact_94_WhileTrue,axiom,
% 0.17/0.43 ! [B2: bexp,S_1: ( list @ char ) > int,C2: com,S_22: ( list @ char ) > int,S_3: ( list @ char ) > int] :
% 0.17/0.43 ( ( bval @ B2 @ S_1 )
% 0.17/0.43 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S_1 ) @ S_22 )
% 0.17/0.43 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_22 ) @ S_3 )
% 0.17/0.43 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_1 ) @ S_3 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % WhileTrue
% 0.17/0.43 thf(fact_95_WhileFalse,axiom,
% 0.17/0.43 ! [B2: bexp,S7: ( list @ char ) > int,C2: com] :
% 0.17/0.43 ( ~ ( bval @ B2 @ S7 )
% 0.17/0.43 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S7 ) @ S7 ) ) ).
% 0.17/0.43
% 0.17/0.43 % WhileFalse
% 0.17/0.43 thf(fact_96_swap__simp,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,X4: B,Y: A] :
% 0.17/0.43 ( ( product_swap @ B @ A @ ( product_Pair @ B @ A @ X4 @ Y ) )
% 0.17/0.43 = ( product_Pair @ A @ B @ Y @ X4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % swap_simp
% 0.17/0.43 thf(fact_97_swap__swap,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,P4: product_prod @ A @ B] :
% 0.17/0.43 ( ( product_swap @ B @ A @ ( product_swap @ A @ B @ P4 ) )
% 0.17/0.43 = P4 ) ).
% 0.17/0.43
% 0.17/0.43 % swap_swap
% 0.17/0.43 thf(fact_98_pair__in__swap__image,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,Y: A,X4: B,A5: set @ ( product_prod @ B @ A )] :
% 0.17/0.43 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Y @ X4 ) @ ( image @ ( product_prod @ B @ A ) @ ( product_prod @ A @ B ) @ ( product_swap @ B @ A ) @ A5 ) )
% 0.17/0.43 = ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ X4 @ Y ) @ A5 ) ) ).
% 0.17/0.43
% 0.17/0.43 % pair_in_swap_image
% 0.17/0.43 thf(fact_99_internal__case__prod__def,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType] :
% 0.17/0.43 ( ( produc2004651681e_prod @ A @ B @ C )
% 0.17/0.43 = ( product_case_prod @ A @ B @ C ) ) ).
% 0.17/0.43
% 0.17/0.43 % internal_case_prod_def
% 0.17/0.43 thf(fact_100_Assign__complete,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,X1: list @ char,X2: aexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,T7: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 0.17/0.43 ( ( relati167478067_valid @ P @ ( assign @ X1 @ X2 ) @ C3 @ Q )
% 0.17/0.43 => ( ( Q @ T7 @ T4 )
% 0.17/0.43 => ? [S4: ( list @ char ) > int] :
% 0.17/0.43 ( ? [V: int] :
% 0.17/0.43 ( ( P @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X1 @ V ) @ S4 )
% 0.17/0.43 & ( ( T7 @ X1 )
% 0.17/0.43 = ( aval @ X2 @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X1 @ V ) ) ) )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S4 ) @ T4 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % Assign_complete
% 0.17/0.43 thf(fact_101_While__True__ir__valid,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % While_True_ir_valid
% 0.17/0.43 thf(fact_102_While__backwards__frontier__ir__valid_H,axiom,
% 0.17/0.43 ! [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,T7: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 0.17/0.43 ( ! [N: nat,T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ ( plus_plus @ nat @ K @ ( suc @ N ) ) @ T2 @ T3 )
% 0.17/0.43 => ? [S8: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ ( plus_plus @ nat @ K @ N ) @ S8 @ T3 )
% 0.17/0.43 & ( bval @ B2 @ S8 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T2 ) ) )
% 0.17/0.43 => ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 0.17/0.43 ( ( Q @ T2 @ T3 )
% 0.17/0.43 => ? [S8: ( list @ char ) > int,S5: ( list @ char ) > int] :
% 0.17/0.43 ( ? [N2: nat] : ( P @ ( plus_plus @ nat @ K @ N2 ) @ S8 @ S5 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S8 ) @ T2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 0.17/0.43 => ( ( Q @ T7 @ T4 )
% 0.17/0.43 => ? [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ K @ S3 @ S4 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S3 ) @ T7 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S4 ) @ T4 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % While_backwards_frontier_ir_valid'
% 0.17/0.43 thf(fact_103_mem__case__prodI2,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,P4: product_prod @ A @ B,Z: C,C2: A > B > ( set @ C )] :
% 0.17/0.43 ( ! [A4: A,B4: B] :
% 0.17/0.43 ( ( P4
% 0.17/0.43 = ( product_Pair @ A @ B @ A4 @ B4 ) )
% 0.17/0.43 => ( member @ C @ Z @ ( C2 @ A4 @ B4 ) ) )
% 0.17/0.43 => ( member @ C @ Z @ ( product_case_prod @ A @ B @ ( set @ C ) @ C2 @ P4 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % mem_case_prodI2
% 0.17/0.43 thf(fact_104_mem__case__prodI,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,Z: A,C2: B > C > ( set @ A ),A2: B,B2: C] :
% 0.17/0.43 ( ( member @ A @ Z @ ( C2 @ A2 @ B2 ) )
% 0.17/0.43 => ( member @ A @ Z @ ( product_case_prod @ B @ C @ ( set @ A ) @ C2 @ ( product_Pair @ B @ C @ A2 @ B2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % mem_case_prodI
% 0.17/0.43 thf(fact_105_case__prodI2_H,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,P4: product_prod @ A @ B,C2: A > B > C > $o,X4: C] :
% 0.17/0.43 ( ! [A4: A,B4: B] :
% 0.17/0.43 ( ( ( product_Pair @ A @ B @ A4 @ B4 )
% 0.17/0.43 = P4 )
% 0.17/0.43 => ( C2 @ A4 @ B4 @ X4 ) )
% 0.17/0.43 => ( product_case_prod @ A @ B @ ( C > $o ) @ C2 @ P4 @ X4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodI2'
% 0.17/0.43 thf(fact_106_case__prodI2,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,P4: product_prod @ A @ B,C2: A > B > $o] :
% 0.17/0.43 ( ! [A4: A,B4: B] :
% 0.17/0.43 ( ( P4
% 0.17/0.43 = ( product_Pair @ A @ B @ A4 @ B4 ) )
% 0.17/0.43 => ( C2 @ A4 @ B4 ) )
% 0.17/0.43 => ( product_case_prod @ A @ B @ $o @ C2 @ P4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodI2
% 0.17/0.43 thf(fact_107_case__prodI,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: A > B > $o,A2: A,B2: B] :
% 0.17/0.43 ( ( F @ A2 @ B2 )
% 0.17/0.43 => ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodI
% 0.17/0.43 thf(fact_108_disj__ir__valid,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati167478067_valid @ P_1 @ C2 @ C3 @ Q_1 )
% 0.17/0.43 => ( ( relati167478067_valid @ P_2 @ C2 @ C3 @ Q_2 )
% 0.17/0.43 => ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P_1 @ S @ S2 )
% 0.17/0.43 | ( P_2 @ S @ S2 ) )
% 0.17/0.43 @ C2
% 0.17/0.43 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( Q_1 @ T5 @ T6 )
% 0.17/0.43 | ( Q_2 @ T5 @ T6 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % disj_ir_valid
% 0.17/0.43 thf(fact_109_case__prod__conv,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,C: $tType,F: B > C > A,A2: B,B2: C] :
% 0.17/0.43 ( ( product_case_prod @ B @ C @ A @ F @ ( product_Pair @ B @ C @ A2 @ B2 ) )
% 0.17/0.43 = ( F @ A2 @ B2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prod_conv
% 0.17/0.43 thf(fact_110_curry__case__prod,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,F: A > B > C] :
% 0.17/0.43 ( ( product_curry @ A @ B @ C @ ( product_case_prod @ A @ B @ C @ F ) )
% 0.17/0.43 = F ) ).
% 0.17/0.43
% 0.17/0.43 % curry_case_prod
% 0.17/0.43 thf(fact_111_case__prod__curry,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,F: ( product_prod @ A @ B ) > C] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ C @ ( product_curry @ A @ B @ C @ F ) )
% 0.17/0.43 = F ) ).
% 0.17/0.43
% 0.17/0.43 % case_prod_curry
% 0.17/0.43 thf(fact_112_case__swap,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,F: C > B > A,P4: product_prod @ C @ B] :
% 0.17/0.43 ( ( product_case_prod @ B @ C @ A
% 0.17/0.43 @ ^ [Y4: B,X: C] : ( F @ X @ Y4 )
% 0.17/0.43 @ ( product_swap @ C @ B @ P4 ) )
% 0.17/0.43 = ( product_case_prod @ C @ B @ A @ F @ P4 ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_swap
% 0.17/0.43 thf(fact_113_pair__imageI,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,A2: A,B2: B,A5: set @ ( product_prod @ A @ B ),F: A > B > C] :
% 0.17/0.43 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A2 @ B2 ) @ A5 )
% 0.17/0.43 => ( member @ C @ ( F @ A2 @ B2 ) @ ( image @ ( product_prod @ A @ B ) @ C @ ( product_case_prod @ A @ B @ C @ F ) @ A5 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % pair_imageI
% 0.17/0.43 thf(fact_114_If__True__ir__valid,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati167478067_valid
% 0.17/0.43 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ A6 @ C4 )
% 0.17/0.43 & ( bval @ B2 @ A6 ) )
% 0.17/0.43 @ C_1
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % If_True_ir_valid
% 0.17/0.43 thf(fact_115_If__False__ir__valid,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati167478067_valid
% 0.17/0.43 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ A6 @ C4 )
% 0.17/0.43 & ~ ( bval @ B2 @ A6 ) )
% 0.17/0.43 @ C_2
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % If_False_ir_valid
% 0.17/0.43 thf(fact_116_While__False__ir__valid,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 0.17/0.43 ( ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ~ ( bval @ B2 @ S ) )
% 0.17/0.43 @ skip
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % While_False_ir_valid
% 0.17/0.43 thf(fact_117_Assign__blah,axiom,
% 0.17/0.43 ! [T7: ( list @ char ) > int,X4: list @ char,E3: aexp,V2: int] :
% 0.17/0.43 ( ( ( T7 @ X4 )
% 0.17/0.43 = ( aval @ E3 @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X4 @ V2 ) ) )
% 0.17/0.43 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ E3 ) @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X4 @ V2 ) ) @ T7 ) ) ).
% 0.17/0.43
% 0.17/0.43 % Assign_blah
% 0.17/0.43 thf(fact_118_curry__def,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType] :
% 0.17/0.43 ( ( product_curry @ A @ B @ C )
% 0.17/0.43 = ( ^ [C4: ( product_prod @ A @ B ) > C,X: A,Y4: B] : ( C4 @ ( product_Pair @ A @ B @ X @ Y4 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % curry_def
% 0.17/0.43 thf(fact_119_prod_Ocase__distrib,axiom,
% 0.17/0.43 ! [C: $tType,D3: $tType,B: $tType,A: $tType,H: C > D3,F: A > B > C,Prod: product_prod @ A @ B] :
% 0.17/0.43 ( ( H @ ( product_case_prod @ A @ B @ C @ F @ Prod ) )
% 0.17/0.43 = ( product_case_prod @ A @ B @ D3
% 0.17/0.43 @ ^ [X13: A,X24: B] : ( H @ ( F @ X13 @ X24 ) )
% 0.17/0.43 @ Prod ) ) ).
% 0.17/0.43
% 0.17/0.43 % prod.case_distrib
% 0.17/0.43 thf(fact_120_ir__disj,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati1493963588_hoare @ P_1 @ C2 @ C3 @ Q_1 )
% 0.17/0.43 => ( ( relati1493963588_hoare @ P_2 @ C2 @ C3 @ Q_2 )
% 0.17/0.43 => ( relati1493963588_hoare
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P_1 @ S @ S2 )
% 0.17/0.43 | ( P_2 @ S @ S2 ) )
% 0.17/0.43 @ C2
% 0.17/0.43 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( Q_1 @ T5 @ T6 )
% 0.17/0.43 | ( Q_2 @ T5 @ T6 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_disj
% 0.17/0.43 thf(fact_121_com_Ocase__distrib,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,H: A > B,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,Com: com] :
% 0.17/0.43 ( ( H @ ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ Com ) )
% 0.17/0.43 = ( case_com @ B @ ( H @ F1 )
% 0.17/0.43 @ ^ [X13: list @ char,X24: aexp] : ( H @ ( F2 @ X13 @ X24 ) )
% 0.17/0.43 @ ^ [X13: com,X24: com] : ( H @ ( F3 @ X13 @ X24 ) )
% 0.17/0.43 @ ^ [X13: bexp,X24: com,X34: com] : ( H @ ( F4 @ X13 @ X24 @ X34 ) )
% 0.17/0.43 @ ^ [X13: bexp,X24: com] : ( H @ ( F5 @ X13 @ X24 ) )
% 0.17/0.43 @ Com ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.case_distrib
% 0.17/0.43 thf(fact_122_assign__upd__blah,axiom,
% 0.17/0.43 ! [X1: list @ char,S7: ( list @ char ) > int,X2: aexp] :
% 0.17/0.43 ( ( ^ [A6: list @ char] : ( if2 @ int @ ( A6 = X1 ) @ ( S7 @ X1 ) @ ( fun_upd @ ( list @ char ) @ int @ S7 @ X1 @ ( aval @ X2 @ S7 ) @ A6 ) ) )
% 0.17/0.43 = S7 ) ).
% 0.17/0.43
% 0.17/0.43 % assign_upd_blah
% 0.17/0.43 thf(fact_123_flip__def,axiom,
% 0.17/0.43 ( relati1716060877e_flip
% 0.17/0.43 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S: ( list @ char ) > int,S2: ( list @ char ) > int] : ( P2 @ S2 @ S ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % flip_def
% 0.17/0.43 thf(fact_124_curry__K,axiom,
% 0.17/0.43 ! [B: $tType,C: $tType,A: $tType,C2: C] :
% 0.17/0.43 ( ( product_curry @ A @ B @ C
% 0.17/0.43 @ ^ [X: product_prod @ A @ B] : C2 )
% 0.17/0.43 = ( ^ [X: A,Y4: B] : C2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % curry_K
% 0.17/0.43 thf(fact_125_cond__case__prod__eta,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,F: A > B > C,G: ( product_prod @ A @ B ) > C] :
% 0.17/0.43 ( ! [X3: A,Y3: B] :
% 0.17/0.43 ( ( F @ X3 @ Y3 )
% 0.17/0.43 = ( G @ ( product_Pair @ A @ B @ X3 @ Y3 ) ) )
% 0.17/0.43 => ( ( product_case_prod @ A @ B @ C @ F )
% 0.17/0.43 = G ) ) ).
% 0.17/0.43
% 0.17/0.43 % cond_case_prod_eta
% 0.17/0.43 thf(fact_126_case__prod__eta,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,F: ( product_prod @ A @ B ) > C] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ C
% 0.17/0.43 @ ^ [X: A,Y4: B] : ( F @ ( product_Pair @ A @ B @ X @ Y4 ) ) )
% 0.17/0.43 = F ) ).
% 0.17/0.43
% 0.17/0.43 % case_prod_eta
% 0.17/0.43 thf(fact_127_case__prodE2,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,C: $tType,Q: A > $o,P: B > C > A,Z: product_prod @ B @ C] :
% 0.17/0.43 ( ( Q @ ( product_case_prod @ B @ C @ A @ P @ Z ) )
% 0.17/0.43 => ~ ! [X3: B,Y3: C] :
% 0.17/0.43 ( ( Z
% 0.17/0.43 = ( product_Pair @ B @ C @ X3 @ Y3 ) )
% 0.17/0.43 => ~ ( Q @ ( P @ X3 @ Y3 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodE2
% 0.17/0.43 thf(fact_128_case__prodE_H,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,C: $tType,C2: A > B > C > $o,P4: product_prod @ A @ B,Z: C] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ ( C > $o ) @ C2 @ P4 @ Z )
% 0.17/0.43 => ~ ! [X3: A,Y3: B] :
% 0.17/0.43 ( ( P4
% 0.17/0.43 = ( product_Pair @ A @ B @ X3 @ Y3 ) )
% 0.17/0.43 => ~ ( C2 @ X3 @ Y3 @ Z ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodE'
% 0.17/0.43 thf(fact_129_case__prodD_H,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,C: $tType,R: A > B > C > $o,A2: A,B2: B,C2: C] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ ( C > $o ) @ R @ ( product_Pair @ A @ B @ A2 @ B2 ) @ C2 )
% 0.17/0.43 => ( R @ A2 @ B2 @ C2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodD'
% 0.17/0.43 thf(fact_130_case__prodE,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C2: A > B > $o,P4: product_prod @ A @ B] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ $o @ C2 @ P4 )
% 0.17/0.43 => ~ ! [X3: A,Y3: B] :
% 0.17/0.43 ( ( P4
% 0.17/0.43 = ( product_Pair @ A @ B @ X3 @ Y3 ) )
% 0.17/0.43 => ~ ( C2 @ X3 @ Y3 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodE
% 0.17/0.43 thf(fact_131_case__prodD,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: A > B > $o,A2: A,B2: B] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 0.17/0.43 => ( F @ A2 @ B2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prodD
% 0.17/0.43 thf(fact_132_mem__case__prodE,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,C: $tType,Z: A,C2: B > C > ( set @ A ),P4: product_prod @ B @ C] :
% 0.17/0.43 ( ( member @ A @ Z @ ( product_case_prod @ B @ C @ ( set @ A ) @ C2 @ P4 ) )
% 0.17/0.43 => ~ ! [X3: B,Y3: C] :
% 0.17/0.43 ( ( P4
% 0.17/0.43 = ( product_Pair @ B @ C @ X3 @ Y3 ) )
% 0.17/0.43 => ~ ( member @ A @ Z @ ( C2 @ X3 @ Y3 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % mem_case_prodE
% 0.17/0.43 thf(fact_133_old_Oprod_Ocase,axiom,
% 0.17/0.43 ! [A: $tType,C: $tType,B: $tType,F: A > B > C,X1: A,X2: B] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ C @ F @ ( product_Pair @ A @ B @ X1 @ X2 ) )
% 0.17/0.43 = ( F @ X1 @ X2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % old.prod.case
% 0.17/0.43 thf(fact_134_ir__If__False,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati1493963588_hoare
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ~ ( bval @ B2 @ S ) )
% 0.17/0.43 @ C_2
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_If_False
% 0.17/0.43 thf(fact_135_ir__If__True,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati1493963588_hoare
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ C_1
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_If_True
% 0.17/0.43 thf(fact_136_AssignE,axiom,
% 0.17/0.43 ! [X4: list @ char,A2: aexp,S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ A2 ) @ S7 ) @ T7 )
% 0.17/0.43 => ( T7
% 0.17/0.43 = ( fun_upd @ ( list @ char ) @ int @ S7 @ X4 @ ( aval @ A2 @ S7 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % AssignE
% 0.17/0.43 thf(fact_137_assign__simp,axiom,
% 0.17/0.43 ! [X4: list @ char,A2: aexp,S7: ( list @ char ) > int,S6: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ A2 ) @ S7 ) @ S6 )
% 0.17/0.43 = ( S6
% 0.17/0.43 = ( fun_upd @ ( list @ char ) @ int @ S7 @ X4 @ ( aval @ A2 @ S7 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % assign_simp
% 0.17/0.43 thf(fact_138_Assign,axiom,
% 0.17/0.43 ! [X4: list @ char,A2: aexp,S7: ( list @ char ) > int] : ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ A2 ) @ S7 ) @ ( fun_upd @ ( list @ char ) @ int @ S7 @ X4 @ ( aval @ A2 @ S7 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % Assign
% 0.17/0.43 thf(fact_139_ir__While__False,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 0.17/0.43 ( ( relati1493963588_hoare
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ~ ( bval @ B2 @ S ) )
% 0.17/0.43 @ skip
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_While_False
% 0.17/0.43 thf(fact_140_ir__While__True,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ( relati1493963588_hoare
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_While_True
% 0.17/0.43 thf(fact_141_add__Suc__right,axiom,
% 0.17/0.43 ! [M: nat,N3: nat] :
% 0.17/0.43 ( ( plus_plus @ nat @ M @ ( suc @ N3 ) )
% 0.17/0.43 = ( suc @ ( plus_plus @ nat @ M @ N3 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_Suc_right
% 0.17/0.43 thf(fact_142_image__ident,axiom,
% 0.17/0.43 ! [A: $tType,Y5: set @ A] :
% 0.17/0.43 ( ( image @ A @ A
% 0.17/0.43 @ ^ [X: A] : X
% 0.17/0.43 @ Y5 )
% 0.17/0.43 = Y5 ) ).
% 0.17/0.43
% 0.17/0.43 % image_ident
% 0.17/0.43 thf(fact_143_fun__upd__upd,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: A > B,X4: A,Y: B,Z: B] :
% 0.17/0.43 ( ( fun_upd @ A @ B @ ( fun_upd @ A @ B @ F @ X4 @ Y ) @ X4 @ Z )
% 0.17/0.43 = ( fun_upd @ A @ B @ F @ X4 @ Z ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_upd
% 0.17/0.43 thf(fact_144_fun__upd__triv,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,F: A > B,X4: A] :
% 0.17/0.43 ( ( fun_upd @ A @ B @ F @ X4 @ ( F @ X4 ) )
% 0.17/0.43 = F ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_triv
% 0.17/0.43 thf(fact_145_fun__upd__apply,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType] :
% 0.17/0.43 ( ( fun_upd @ B @ A )
% 0.17/0.43 = ( ^ [F8: B > A,X: B,Y4: A,Z2: B] : ( if2 @ A @ ( Z2 = X ) @ Y4 @ ( F8 @ Z2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_apply
% 0.17/0.43 thf(fact_146_image__eqI,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,B2: A,F: B > A,X4: B,A5: set @ B] :
% 0.17/0.43 ( ( B2
% 0.17/0.43 = ( F @ X4 ) )
% 0.17/0.43 => ( ( member @ B @ X4 @ A5 )
% 0.17/0.43 => ( member @ A @ B2 @ ( image @ B @ A @ F @ A5 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % image_eqI
% 0.17/0.43 thf(fact_147_old_Onat_Oinject,axiom,
% 0.17/0.43 ! [Nat: nat,Nat2: nat] :
% 0.17/0.43 ( ( ( suc @ Nat )
% 0.17/0.43 = ( suc @ Nat2 ) )
% 0.17/0.43 = ( Nat = Nat2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % old.nat.inject
% 0.17/0.43 thf(fact_148_nat_Oinject,axiom,
% 0.17/0.43 ! [X2: nat,Y2: nat] :
% 0.17/0.43 ( ( ( suc @ X2 )
% 0.17/0.43 = ( suc @ Y2 ) )
% 0.17/0.43 = ( X2 = Y2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % nat.inject
% 0.17/0.43 thf(fact_149_split__part,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,P: $o,Q: A > B > $o] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ $o
% 0.17/0.43 @ ^ [A6: A,B5: B] :
% 0.17/0.43 ( P
% 0.17/0.43 & ( Q @ A6 @ B5 ) ) )
% 0.17/0.43 = ( ^ [Ab: product_prod @ A @ B] :
% 0.17/0.43 ( P
% 0.17/0.43 & ( product_case_prod @ A @ B @ $o @ Q @ Ab ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % split_part
% 0.17/0.43 thf(fact_150_prod_Odisc__eq__case,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
% 0.17/0.43 ( product_case_prod @ A @ B @ $o
% 0.17/0.43 @ ^ [Uu: A,Uv: B] : $true
% 0.17/0.43 @ Prod ) ).
% 0.17/0.43
% 0.17/0.43 % prod.disc_eq_case
% 0.17/0.43 thf(fact_151_rev__image__eqI,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,X4: A,A5: set @ A,B2: B,F: A > B] :
% 0.17/0.43 ( ( member @ A @ X4 @ A5 )
% 0.17/0.43 => ( ( B2
% 0.17/0.43 = ( F @ X4 ) )
% 0.17/0.43 => ( member @ B @ B2 @ ( image @ A @ B @ F @ A5 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % rev_image_eqI
% 0.17/0.43 thf(fact_152_ball__imageD,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: B > A,A5: set @ B,P: A > $o] :
% 0.17/0.43 ( ! [X3: A] :
% 0.17/0.43 ( ( member @ A @ X3 @ ( image @ B @ A @ F @ A5 ) )
% 0.17/0.43 => ( P @ X3 ) )
% 0.17/0.43 => ! [X5: B] :
% 0.17/0.43 ( ( member @ B @ X5 @ A5 )
% 0.17/0.43 => ( P @ ( F @ X5 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ball_imageD
% 0.17/0.43 thf(fact_153_image__cong,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,M2: set @ A,N4: set @ A,F: A > B,G: A > B] :
% 0.17/0.43 ( ( M2 = N4 )
% 0.17/0.43 => ( ! [X3: A] :
% 0.17/0.43 ( ( member @ A @ X3 @ N4 )
% 0.17/0.43 => ( ( F @ X3 )
% 0.17/0.43 = ( G @ X3 ) ) )
% 0.17/0.43 => ( ( image @ A @ B @ F @ M2 )
% 0.17/0.43 = ( image @ A @ B @ G @ N4 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % image_cong
% 0.17/0.43 thf(fact_154_bex__imageD,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: B > A,A5: set @ B,P: A > $o] :
% 0.17/0.43 ( ? [X5: A] :
% 0.17/0.43 ( ( member @ A @ X5 @ ( image @ B @ A @ F @ A5 ) )
% 0.17/0.43 & ( P @ X5 ) )
% 0.17/0.43 => ? [X3: B] :
% 0.17/0.43 ( ( member @ B @ X3 @ A5 )
% 0.17/0.43 & ( P @ ( F @ X3 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % bex_imageD
% 0.17/0.43 thf(fact_155_image__iff,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,Z: A,F: B > A,A5: set @ B] :
% 0.17/0.43 ( ( member @ A @ Z @ ( image @ B @ A @ F @ A5 ) )
% 0.17/0.43 = ( ? [X: B] :
% 0.17/0.43 ( ( member @ B @ X @ A5 )
% 0.17/0.43 & ( Z
% 0.17/0.43 = ( F @ X ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % image_iff
% 0.17/0.43 thf(fact_156_imageI,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,X4: A,A5: set @ A,F: A > B] :
% 0.17/0.43 ( ( member @ A @ X4 @ A5 )
% 0.17/0.43 => ( member @ B @ ( F @ X4 ) @ ( image @ A @ B @ F @ A5 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % imageI
% 0.17/0.43 thf(fact_157_n__not__Suc__n,axiom,
% 0.17/0.43 ! [N3: nat] :
% 0.17/0.43 ( N3
% 0.17/0.43 != ( suc @ N3 ) ) ).
% 0.17/0.43
% 0.17/0.43 % n_not_Suc_n
% 0.17/0.43 thf(fact_158_Suc__inject,axiom,
% 0.17/0.43 ! [X4: nat,Y: nat] :
% 0.17/0.43 ( ( ( suc @ X4 )
% 0.17/0.43 = ( suc @ Y ) )
% 0.17/0.43 => ( X4 = Y ) ) ).
% 0.17/0.43
% 0.17/0.43 % Suc_inject
% 0.17/0.43 thf(fact_159_fun__upd__idem__iff,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: A > B,X4: A,Y: B] :
% 0.17/0.43 ( ( ( fun_upd @ A @ B @ F @ X4 @ Y )
% 0.17/0.43 = F )
% 0.17/0.43 = ( ( F @ X4 )
% 0.17/0.43 = Y ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_idem_iff
% 0.17/0.43 thf(fact_160_fun__upd__twist,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,A2: A,C2: A,M: A > B,B2: B,D: B] :
% 0.17/0.43 ( ( A2 != C2 )
% 0.17/0.43 => ( ( fun_upd @ A @ B @ ( fun_upd @ A @ B @ M @ A2 @ B2 ) @ C2 @ D )
% 0.17/0.43 = ( fun_upd @ A @ B @ ( fun_upd @ A @ B @ M @ C2 @ D ) @ A2 @ B2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_twist
% 0.17/0.43 thf(fact_161_fun__upd__other,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,Z: A,X4: A,F: A > B,Y: B] :
% 0.17/0.43 ( ( Z != X4 )
% 0.17/0.43 => ( ( fun_upd @ A @ B @ F @ X4 @ Y @ Z )
% 0.17/0.43 = ( F @ Z ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_other
% 0.17/0.43 thf(fact_162_fun__upd__same,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,F: B > A,X4: B,Y: A] :
% 0.17/0.43 ( ( fun_upd @ B @ A @ F @ X4 @ Y @ X4 )
% 0.17/0.43 = Y ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_same
% 0.17/0.43 thf(fact_163_fun__upd__idem,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: B > A,X4: B,Y: A] :
% 0.17/0.43 ( ( ( F @ X4 )
% 0.17/0.43 = Y )
% 0.17/0.43 => ( ( fun_upd @ B @ A @ F @ X4 @ Y )
% 0.17/0.43 = F ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_idem
% 0.17/0.43 thf(fact_164_fun__upd__eqD,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: A > B,X4: A,Y: B,G: A > B,Z: B] :
% 0.17/0.43 ( ( ( fun_upd @ A @ B @ F @ X4 @ Y )
% 0.17/0.43 = ( fun_upd @ A @ B @ G @ X4 @ Z ) )
% 0.17/0.43 => ( Y = Z ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_eqD
% 0.17/0.43 thf(fact_165_fun__upd__def,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType] :
% 0.17/0.43 ( ( fun_upd @ A @ B )
% 0.17/0.43 = ( ^ [F8: A > B,A6: A,B5: B,X: A] : ( if2 @ B @ ( X = A6 ) @ B5 @ ( F8 @ X ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_upd_def
% 0.17/0.43 thf(fact_166_Compr__image__eq,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: B > A,A5: set @ B,P: A > $o] :
% 0.17/0.43 ( ( collect @ A
% 0.17/0.43 @ ^ [X: A] :
% 0.17/0.43 ( ( member @ A @ X @ ( image @ B @ A @ F @ A5 ) )
% 0.17/0.43 & ( P @ X ) ) )
% 0.17/0.43 = ( image @ B @ A @ F
% 0.17/0.43 @ ( collect @ B
% 0.17/0.43 @ ^ [X: B] :
% 0.17/0.43 ( ( member @ B @ X @ A5 )
% 0.17/0.43 & ( P @ ( F @ X ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % Compr_image_eq
% 0.17/0.43 thf(fact_167_image__image,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType,F: B > A,G: C > B,A5: set @ C] :
% 0.17/0.43 ( ( image @ B @ A @ F @ ( image @ C @ B @ G @ A5 ) )
% 0.17/0.43 = ( image @ C @ A
% 0.17/0.43 @ ^ [X: C] : ( F @ ( G @ X ) )
% 0.17/0.43 @ A5 ) ) ).
% 0.17/0.43
% 0.17/0.43 % image_image
% 0.17/0.43 thf(fact_168_imageE,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,B2: A,F: B > A,A5: set @ B] :
% 0.17/0.43 ( ( member @ A @ B2 @ ( image @ B @ A @ F @ A5 ) )
% 0.17/0.43 => ~ ! [X3: B] :
% 0.17/0.43 ( ( B2
% 0.17/0.43 = ( F @ X3 ) )
% 0.17/0.43 => ~ ( member @ B @ X3 @ A5 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % imageE
% 0.17/0.43 thf(fact_169_add__Suc,axiom,
% 0.17/0.43 ! [M: nat,N3: nat] :
% 0.17/0.43 ( ( plus_plus @ nat @ ( suc @ M ) @ N3 )
% 0.17/0.43 = ( suc @ ( plus_plus @ nat @ M @ N3 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_Suc
% 0.17/0.43 thf(fact_170_nat__arith_Osuc1,axiom,
% 0.17/0.43 ! [A5: nat,K: nat,A2: nat] :
% 0.17/0.43 ( ( A5
% 0.17/0.43 = ( plus_plus @ nat @ K @ A2 ) )
% 0.17/0.43 => ( ( suc @ A5 )
% 0.17/0.43 = ( plus_plus @ nat @ K @ ( suc @ A2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % nat_arith.suc1
% 0.17/0.43 thf(fact_171_add__Suc__shift,axiom,
% 0.17/0.43 ! [M: nat,N3: nat] :
% 0.17/0.43 ( ( plus_plus @ nat @ ( suc @ M ) @ N3 )
% 0.17/0.43 = ( plus_plus @ nat @ M @ ( suc @ N3 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_Suc_shift
% 0.17/0.43 thf(fact_172_case__prod__app,axiom,
% 0.17/0.43 ! [A: $tType,D3: $tType,C: $tType,B: $tType] :
% 0.17/0.43 ( ( product_case_prod @ B @ C @ ( D3 > A ) )
% 0.17/0.43 = ( ^ [F8: B > C > D3 > A,X: product_prod @ B @ C,Y4: D3] :
% 0.17/0.43 ( product_case_prod @ B @ C @ A
% 0.17/0.43 @ ^ [L: B,R3: C] : ( F8 @ L @ R3 @ Y4 )
% 0.17/0.43 @ X ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % case_prod_app
% 0.17/0.43 thf(fact_173_add__right__cancel,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel_semigroup_add @ A )
% 0.17/0.43 => ! [B2: A,A2: A,C2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.17/0.43 = ( plus_plus @ A @ C2 @ A2 ) )
% 0.17/0.43 = ( B2 = C2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_right_cancel
% 0.17/0.43 thf(fact_174_add__left__cancel,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel_semigroup_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A,C2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.17/0.43 = ( plus_plus @ A @ A2 @ C2 ) )
% 0.17/0.43 = ( B2 = C2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_left_cancel
% 0.17/0.43 thf(fact_175_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( ab_semigroup_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A,C2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 0.17/0.43 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ab_semigroup_add_class.add_ac(1)
% 0.17/0.43 thf(fact_176_add__mono__thms__linordered__semiring_I4_J,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( ordere779506340up_add @ A )
% 0.17/0.43 => ! [I: A,J: A,K: A,L2: A] :
% 0.17/0.43 ( ( ( I = J )
% 0.17/0.43 & ( K = L2 ) )
% 0.17/0.43 => ( ( plus_plus @ A @ I @ K )
% 0.17/0.43 = ( plus_plus @ A @ J @ L2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_mono_thms_linordered_semiring(4)
% 0.17/0.43 thf(fact_177_group__cancel_Oadd1,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( comm_monoid_add @ A )
% 0.17/0.43 => ! [A5: A,K: A,A2: A,B2: A] :
% 0.17/0.43 ( ( A5
% 0.17/0.43 = ( plus_plus @ A @ K @ A2 ) )
% 0.17/0.43 => ( ( plus_plus @ A @ A5 @ B2 )
% 0.17/0.43 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % group_cancel.add1
% 0.17/0.43 thf(fact_178_group__cancel_Oadd2,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( comm_monoid_add @ A )
% 0.17/0.43 => ! [B6: A,K: A,B2: A,A2: A] :
% 0.17/0.43 ( ( B6
% 0.17/0.43 = ( plus_plus @ A @ K @ B2 ) )
% 0.17/0.43 => ( ( plus_plus @ A @ A2 @ B6 )
% 0.17/0.43 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % group_cancel.add2
% 0.17/0.43 thf(fact_179_add_Oassoc,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( semigroup_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A,C2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 0.17/0.43 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.assoc
% 0.17/0.43 thf(fact_180_add_Oleft__cancel,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( group_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A,C2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.17/0.43 = ( plus_plus @ A @ A2 @ C2 ) )
% 0.17/0.43 = ( B2 = C2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.left_cancel
% 0.17/0.43 thf(fact_181_add_Oright__cancel,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( group_add @ A )
% 0.17/0.43 => ! [B2: A,A2: A,C2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.17/0.43 = ( plus_plus @ A @ C2 @ A2 ) )
% 0.17/0.43 = ( B2 = C2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.right_cancel
% 0.17/0.43 thf(fact_182_add_Ocommute,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( ab_semigroup_add @ A )
% 0.17/0.43 => ( ( plus_plus @ A )
% 0.17/0.43 = ( ^ [A6: A,B5: A] : ( plus_plus @ A @ B5 @ A6 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.commute
% 0.17/0.43 thf(fact_183_add_Oleft__commute,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( ab_semigroup_add @ A )
% 0.17/0.43 => ! [B2: A,A2: A,C2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ B2 @ ( plus_plus @ A @ A2 @ C2 ) )
% 0.17/0.43 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.left_commute
% 0.17/0.43 thf(fact_184_add__left__imp__eq,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel_semigroup_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A,C2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.17/0.43 = ( plus_plus @ A @ A2 @ C2 ) )
% 0.17/0.43 => ( B2 = C2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_left_imp_eq
% 0.17/0.43 thf(fact_185_add__right__imp__eq,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel_semigroup_add @ A )
% 0.17/0.43 => ! [B2: A,A2: A,C2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.17/0.43 = ( plus_plus @ A @ C2 @ A2 ) )
% 0.17/0.43 => ( B2 = C2 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_right_imp_eq
% 0.17/0.43 thf(fact_186_case__prod__Pair__iden,axiom,
% 0.17/0.43 ! [B: $tType,A: $tType,P4: product_prod @ A @ B] :
% 0.17/0.43 ( ( product_case_prod @ A @ B @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B ) @ P4 )
% 0.17/0.43 = P4 ) ).
% 0.17/0.43
% 0.17/0.43 % case_prod_Pair_iden
% 0.17/0.43 thf(fact_187_Assign__ir__valid,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,X4: list @ char,E3: aexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ( relati167478067_valid
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ? [V3: int] :
% 0.17/0.43 ( ( P @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) @ T6 )
% 0.17/0.43 & ( ( T5 @ X4 )
% 0.17/0.43 = ( aval @ E3 @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) ) ) )
% 0.17/0.43 @ skip
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ P @ ( assign @ X4 @ E3 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % Assign_ir_valid
% 0.17/0.43 thf(fact_188_split__cong,axiom,
% 0.17/0.43 ! [C: $tType,B: $tType,A: $tType,Q4: product_prod @ A @ B,F: A > B > C,G: A > B > C,P4: product_prod @ A @ B] :
% 0.17/0.43 ( ! [X3: A,Y3: B] :
% 0.17/0.43 ( ( ( product_Pair @ A @ B @ X3 @ Y3 )
% 0.17/0.43 = Q4 )
% 0.17/0.43 => ( ( F @ X3 @ Y3 )
% 0.17/0.43 = ( G @ X3 @ Y3 ) ) )
% 0.17/0.43 => ( ( P4 = Q4 )
% 0.17/0.43 => ( ( product_case_prod @ A @ B @ C @ F @ P4 )
% 0.17/0.43 = ( product_case_prod @ A @ B @ C @ G @ Q4 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % split_cong
% 0.17/0.43 thf(fact_189_ir__Assign,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,X4: list @ char,E3: aexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ( relati1493963588_hoare
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ? [V3: int] :
% 0.17/0.43 ( ( P @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) @ T6 )
% 0.17/0.43 & ( ( T5 @ X4 )
% 0.17/0.43 = ( aval @ E3 @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) ) ) )
% 0.17/0.43 @ skip
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati1493963588_hoare @ P @ ( assign @ X4 @ E3 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_Assign
% 0.17/0.43 thf(fact_190_setcompr__eq__image,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: B > A,P: B > $o] :
% 0.17/0.43 ( ( collect @ A
% 0.17/0.43 @ ^ [Uu: A] :
% 0.17/0.43 ? [X: B] :
% 0.17/0.43 ( ( Uu
% 0.17/0.43 = ( F @ X ) )
% 0.17/0.43 & ( P @ X ) ) )
% 0.17/0.43 = ( image @ B @ A @ F @ ( collect @ B @ P ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % setcompr_eq_image
% 0.17/0.43 thf(fact_191_Setcompr__eq__image,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,F: B > A,A5: set @ B] :
% 0.17/0.43 ( ( collect @ A
% 0.17/0.43 @ ^ [Uu: A] :
% 0.17/0.43 ? [X: B] :
% 0.17/0.43 ( ( Uu
% 0.17/0.43 = ( F @ X ) )
% 0.17/0.43 & ( member @ B @ X @ A5 ) ) )
% 0.17/0.43 = ( image @ B @ A @ F @ A5 ) ) ).
% 0.17/0.43
% 0.17/0.43 % Setcompr_eq_image
% 0.17/0.43 thf(fact_192_ir__valid__While2,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 0.17/0.43 => ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ~ ( bval @ B2 @ S ) )
% 0.17/0.43 @ skip
% 0.17/0.43 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( Q @ T5 @ T6 )
% 0.17/0.43 & ? [S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 0.17/0.43 & ( P @ T5 @ S2 )
% 0.17/0.43 & ~ ( bval @ B2 @ T5 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_While2
% 0.17/0.43 thf(fact_193_ir__valid__Seq1_H,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 0.17/0.43 => ( relati167478067_valid
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T5 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 0.17/0.43 & ? [U2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T5 ) @ U2 )
% 0.17/0.43 & ( Q @ U2 @ T6 ) ) )
% 0.17/0.43 @ C22
% 0.17/0.43 @ skip
% 0.17/0.43 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_Seq1'
% 0.17/0.43 thf(fact_194_ir__valid__track__history,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S7: ( list @ char ) > int,S6: ( list @ char ) > int] :
% 0.17/0.43 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ P @ C2 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( Q @ S7 @ S6 )
% 0.17/0.43 & ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_track_history
% 0.17/0.43 thf(fact_195_decomp__def,axiom,
% 0.17/0.43 ( relati332478480decomp
% 0.17/0.43 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,T5: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ? [S: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( P2 @ S @ S2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C4 @ S ) @ T5 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C5 @ S2 ) @ T6 )
% 0.17/0.43 & ( Q2 @ T5 @ T6 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % decomp_def
% 0.17/0.43 thf(fact_196_ir__valid__Seq1,axiom,
% 0.17/0.43 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ P @ C1 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T5 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 0.17/0.43 & ? [U2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T5 ) @ U2 )
% 0.17/0.43 & ( Q @ U2 @ T6 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_Seq1
% 0.17/0.43 thf(fact_197_ir__valid__If,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati167478067_valid @ P @ ( if @ B2 @ C1 @ C22 ) @ C3 @ Q )
% 0.17/0.43 => ( ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ C1
% 0.17/0.43 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( Q @ T5 @ T6 )
% 0.17/0.43 & ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T5 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 0.17/0.43 & ( bval @ B2 @ S ) ) ) )
% 0.17/0.43 & ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ~ ( bval @ B2 @ S ) )
% 0.17/0.43 @ C22
% 0.17/0.43 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( Q @ T5 @ T6 )
% 0.17/0.43 & ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ S @ S2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S ) @ T5 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 0.17/0.43 & ~ ( bval @ B2 @ S ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_If
% 0.17/0.43 thf(fact_198_get__back_Osimps_I2_J,axiom,
% 0.17/0.43 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com,N3: nat] :
% 0.17/0.43 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( suc @ N3 ) )
% 0.17/0.43 = ( ^ [T5: ( list @ char ) > int,T6: A] :
% 0.17/0.43 ? [S: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 )
% 0.17/0.43 & ( bval @ B2 @ S )
% 0.17/0.43 & ( relati1010904253t_back @ A @ P @ B2 @ C2 @ N3 @ S @ T6 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % get_back.simps(2)
% 0.17/0.43 thf(fact_199_ir__valid__While1,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 0.17/0.43 => ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ C2
% 0.17/0.43 @ skip
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) @ T5 @ T6 )
% 0.17/0.43 & ? [U2: ( list @ char ) > int,U3: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ T5 ) @ U2 )
% 0.17/0.43 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ T6 ) @ U3 )
% 0.17/0.43 & ( Q @ U2 @ U3 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_While1
% 0.17/0.43 thf(fact_200_ir__valid__get__back,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_get_back
% 0.17/0.43 thf(fact_201_ir__valid__While3,axiom,
% 0.17/0.43 ! [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.17/0.43 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 0.17/0.43 => ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ C2
% 0.17/0.43 @ C3
% 0.17/0.43 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 0.17/0.43 ? [S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 0.17/0.43 & ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) @ T5 @ S2 )
% 0.17/0.43 & ? [U2: ( list @ char ) > int] :
% 0.17/0.43 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ T5 ) @ U2 )
% 0.17/0.43 & ( Q @ U2 @ T6 ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_valid_While3
% 0.17/0.43 thf(fact_202_While__backwards__frontier__ir__valid,axiom,
% 0.17/0.43 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ! [N: nat] :
% 0.17/0.43 ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ N @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ C2
% 0.17/0.43 @ skip
% 0.17/0.43 @ ( P @ ( suc @ N ) ) )
% 0.17/0.43 => ( ( relati167478067_valid
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ? [N5: nat] : ( P @ N5 @ S @ S2 )
% 0.17/0.43 @ ( while @ B2 @ C2 )
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati167478067_valid @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % While_backwards_frontier_ir_valid
% 0.17/0.43 thf(fact_203_ir__While__backwards__frontier,axiom,
% 0.17/0.43 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 0.17/0.43 ( ! [N: nat] :
% 0.17/0.43 ( relati1493963588_hoare
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ( ( P @ N @ S @ S2 )
% 0.17/0.43 & ( bval @ B2 @ S ) )
% 0.17/0.43 @ C2
% 0.17/0.43 @ skip
% 0.17/0.43 @ ( P @ ( suc @ N ) ) )
% 0.17/0.43 => ( ( relati1493963588_hoare
% 0.17/0.43 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 0.17/0.43 ? [N5: nat] : ( P @ N5 @ S @ S2 )
% 0.17/0.43 @ ( while @ B2 @ C2 )
% 0.17/0.43 @ C3
% 0.17/0.43 @ Q )
% 0.17/0.43 => ( relati1493963588_hoare @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % ir_While_backwards_frontier
% 0.17/0.43 thf(fact_204_add_Oleft__neutral,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( monoid_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 0.17/0.43 = A2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.left_neutral
% 0.17/0.43 thf(fact_205_add_Oright__neutral,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( monoid_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 0.17/0.43 = A2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.right_neutral
% 0.17/0.43 thf(fact_206_double__zero,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( linord219039673up_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ A2 @ A2 )
% 0.17/0.43 = ( zero_zero @ A ) )
% 0.17/0.43 = ( A2
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % double_zero
% 0.17/0.43 thf(fact_207_double__zero__sym,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( linord219039673up_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( ( zero_zero @ A )
% 0.17/0.43 = ( plus_plus @ A @ A2 @ A2 ) )
% 0.17/0.43 = ( A2
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % double_zero_sym
% 0.17/0.43 thf(fact_208_add__cancel__left__left,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel1352612707id_add @ A )
% 0.17/0.43 => ! [B2: A,A2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ B2 @ A2 )
% 0.17/0.43 = A2 )
% 0.17/0.43 = ( B2
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_cancel_left_left
% 0.17/0.43 thf(fact_209_add__cancel__left__right,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel1352612707id_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ A2 @ B2 )
% 0.17/0.43 = A2 )
% 0.17/0.43 = ( B2
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_cancel_left_right
% 0.17/0.43 thf(fact_210_add__cancel__right__left,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel1352612707id_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A] :
% 0.17/0.43 ( ( A2
% 0.17/0.43 = ( plus_plus @ A @ B2 @ A2 ) )
% 0.17/0.43 = ( B2
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_cancel_right_left
% 0.17/0.43 thf(fact_211_add__cancel__right__right,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel1352612707id_add @ A )
% 0.17/0.43 => ! [A2: A,B2: A] :
% 0.17/0.43 ( ( A2
% 0.17/0.43 = ( plus_plus @ A @ A2 @ B2 ) )
% 0.17/0.43 = ( B2
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_cancel_right_right
% 0.17/0.43 thf(fact_212_add__eq__0__iff__both__eq__0,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( canoni770627133id_add @ A )
% 0.17/0.43 => ! [X4: A,Y: A] :
% 0.17/0.43 ( ( ( plus_plus @ A @ X4 @ Y )
% 0.17/0.43 = ( zero_zero @ A ) )
% 0.17/0.43 = ( ( X4
% 0.17/0.43 = ( zero_zero @ A ) )
% 0.17/0.43 & ( Y
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_eq_0_iff_both_eq_0
% 0.17/0.43 thf(fact_213_zero__eq__add__iff__both__eq__0,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( canoni770627133id_add @ A )
% 0.17/0.43 => ! [X4: A,Y: A] :
% 0.17/0.43 ( ( ( zero_zero @ A )
% 0.17/0.43 = ( plus_plus @ A @ X4 @ Y ) )
% 0.17/0.43 = ( ( X4
% 0.17/0.43 = ( zero_zero @ A ) )
% 0.17/0.43 & ( Y
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % zero_eq_add_iff_both_eq_0
% 0.17/0.43 thf(fact_214_Nat_Oadd__0__right,axiom,
% 0.17/0.43 ! [M: nat] :
% 0.17/0.43 ( ( plus_plus @ nat @ M @ ( zero_zero @ nat ) )
% 0.17/0.43 = M ) ).
% 0.17/0.43
% 0.17/0.43 % Nat.add_0_right
% 0.17/0.43 thf(fact_215_add__is__0,axiom,
% 0.17/0.43 ! [M: nat,N3: nat] :
% 0.17/0.43 ( ( ( plus_plus @ nat @ M @ N3 )
% 0.17/0.43 = ( zero_zero @ nat ) )
% 0.17/0.43 = ( ( M
% 0.17/0.43 = ( zero_zero @ nat ) )
% 0.17/0.43 & ( N3
% 0.17/0.43 = ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_is_0
% 0.17/0.43 thf(fact_216_image__add__0,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( comm_monoid_add @ A )
% 0.17/0.43 => ! [S9: set @ A] :
% 0.17/0.43 ( ( image @ A @ A @ ( plus_plus @ A @ ( zero_zero @ A ) ) @ S9 )
% 0.17/0.43 = S9 ) ) ).
% 0.17/0.43
% 0.17/0.43 % image_add_0
% 0.17/0.43 thf(fact_217_get__back_Osimps_I1_J,axiom,
% 0.17/0.43 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com] :
% 0.17/0.43 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( zero_zero @ nat ) )
% 0.17/0.43 = P ) ).
% 0.17/0.43
% 0.17/0.43 % get_back.simps(1)
% 0.17/0.43 thf(fact_218_nat_Odistinct_I1_J,axiom,
% 0.17/0.43 ! [X2: nat] :
% 0.17/0.43 ( ( zero_zero @ nat )
% 0.17/0.43 != ( suc @ X2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % nat.distinct(1)
% 0.17/0.43 thf(fact_219_old_Onat_Odistinct_I2_J,axiom,
% 0.17/0.43 ! [Nat3: nat] :
% 0.17/0.43 ( ( suc @ Nat3 )
% 0.17/0.43 != ( zero_zero @ nat ) ) ).
% 0.17/0.43
% 0.17/0.43 % old.nat.distinct(2)
% 0.17/0.43 thf(fact_220_old_Onat_Odistinct_I1_J,axiom,
% 0.17/0.43 ! [Nat2: nat] :
% 0.17/0.43 ( ( zero_zero @ nat )
% 0.17/0.43 != ( suc @ Nat2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % old.nat.distinct(1)
% 0.17/0.43 thf(fact_221_nat_OdiscI,axiom,
% 0.17/0.43 ! [Nat: nat,X2: nat] :
% 0.17/0.43 ( ( Nat
% 0.17/0.43 = ( suc @ X2 ) )
% 0.17/0.43 => ( Nat
% 0.17/0.43 != ( zero_zero @ nat ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % nat.discI
% 0.17/0.43 thf(fact_222_nat__induct,axiom,
% 0.17/0.43 ! [P: nat > $o,N3: nat] :
% 0.17/0.43 ( ( P @ ( zero_zero @ nat ) )
% 0.17/0.43 => ( ! [N: nat] :
% 0.17/0.43 ( ( P @ N )
% 0.17/0.43 => ( P @ ( suc @ N ) ) )
% 0.17/0.43 => ( P @ N3 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % nat_induct
% 0.17/0.43 thf(fact_223_diff__induct,axiom,
% 0.17/0.43 ! [P: nat > nat > $o,M: nat,N3: nat] :
% 0.17/0.43 ( ! [X3: nat] : ( P @ X3 @ ( zero_zero @ nat ) )
% 0.17/0.43 => ( ! [Y3: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y3 ) )
% 0.17/0.43 => ( ! [X3: nat,Y3: nat] :
% 0.17/0.43 ( ( P @ X3 @ Y3 )
% 0.17/0.43 => ( P @ ( suc @ X3 ) @ ( suc @ Y3 ) ) )
% 0.17/0.43 => ( P @ M @ N3 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % diff_induct
% 0.17/0.43 thf(fact_224_zero__induct,axiom,
% 0.17/0.43 ! [P: nat > $o,K: nat] :
% 0.17/0.43 ( ( P @ K )
% 0.17/0.43 => ( ! [N: nat] :
% 0.17/0.43 ( ( P @ ( suc @ N ) )
% 0.17/0.43 => ( P @ N ) )
% 0.17/0.43 => ( P @ ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % zero_induct
% 0.17/0.43 thf(fact_225_Suc__neq__Zero,axiom,
% 0.17/0.43 ! [M: nat] :
% 0.17/0.43 ( ( suc @ M )
% 0.17/0.43 != ( zero_zero @ nat ) ) ).
% 0.17/0.43
% 0.17/0.43 % Suc_neq_Zero
% 0.17/0.43 thf(fact_226_Zero__neq__Suc,axiom,
% 0.17/0.43 ! [M: nat] :
% 0.17/0.43 ( ( zero_zero @ nat )
% 0.17/0.43 != ( suc @ M ) ) ).
% 0.17/0.43
% 0.17/0.43 % Zero_neq_Suc
% 0.17/0.43 thf(fact_227_Zero__not__Suc,axiom,
% 0.17/0.43 ! [M: nat] :
% 0.17/0.43 ( ( zero_zero @ nat )
% 0.17/0.43 != ( suc @ M ) ) ).
% 0.17/0.43
% 0.17/0.43 % Zero_not_Suc
% 0.17/0.43 thf(fact_228_old_Onat_Oexhaust,axiom,
% 0.17/0.43 ! [Y: nat] :
% 0.17/0.43 ( ( Y
% 0.17/0.43 != ( zero_zero @ nat ) )
% 0.17/0.43 => ~ ! [Nat4: nat] :
% 0.17/0.43 ( Y
% 0.17/0.43 != ( suc @ Nat4 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % old.nat.exhaust
% 0.17/0.43 thf(fact_229_old_Onat_Oinducts,axiom,
% 0.17/0.43 ! [P: nat > $o,Nat: nat] :
% 0.17/0.43 ( ( P @ ( zero_zero @ nat ) )
% 0.17/0.43 => ( ! [Nat4: nat] :
% 0.17/0.43 ( ( P @ Nat4 )
% 0.17/0.43 => ( P @ ( suc @ Nat4 ) ) )
% 0.17/0.43 => ( P @ Nat ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % old.nat.inducts
% 0.17/0.43 thf(fact_230_not0__implies__Suc,axiom,
% 0.17/0.43 ! [N3: nat] :
% 0.17/0.43 ( ( N3
% 0.17/0.43 != ( zero_zero @ nat ) )
% 0.17/0.43 => ? [M3: nat] :
% 0.17/0.43 ( N3
% 0.17/0.43 = ( suc @ M3 ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % not0_implies_Suc
% 0.17/0.43 thf(fact_231_comm__monoid__add__class_Oadd__0,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( comm_monoid_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 0.17/0.43 = A2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % comm_monoid_add_class.add_0
% 0.17/0.43 thf(fact_232_add_Ocomm__neutral,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( comm_monoid_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 0.17/0.43 = A2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.comm_neutral
% 0.17/0.43 thf(fact_233_add_Ogroup__left__neutral,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( group_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 0.17/0.43 = A2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % add.group_left_neutral
% 0.17/0.43 thf(fact_234_fun__cong__unused__0,axiom,
% 0.17/0.43 ! [A: $tType,B: $tType,C: $tType] :
% 0.17/0.43 ( ( zero @ B )
% 0.17/0.43 => ! [F: ( A > B ) > C,G: C] :
% 0.17/0.43 ( ( F
% 0.17/0.43 = ( ^ [X: A > B] : G ) )
% 0.17/0.43 => ( ( F
% 0.17/0.43 @ ^ [X: A] : ( zero_zero @ B ) )
% 0.17/0.43 = G ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % fun_cong_unused_0
% 0.17/0.43 thf(fact_235_add__eq__self__zero,axiom,
% 0.17/0.43 ! [M: nat,N3: nat] :
% 0.17/0.43 ( ( ( plus_plus @ nat @ M @ N3 )
% 0.17/0.43 = M )
% 0.17/0.43 => ( N3
% 0.17/0.43 = ( zero_zero @ nat ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_eq_self_zero
% 0.17/0.43 thf(fact_236_plus__nat_Oadd__0,axiom,
% 0.17/0.43 ! [N3: nat] :
% 0.17/0.43 ( ( plus_plus @ nat @ ( zero_zero @ nat ) @ N3 )
% 0.17/0.43 = N3 ) ).
% 0.17/0.43
% 0.17/0.43 % plus_nat.add_0
% 0.17/0.43 thf(fact_237_one__is__add,axiom,
% 0.17/0.43 ! [M: nat,N3: nat] :
% 0.17/0.43 ( ( ( suc @ ( zero_zero @ nat ) )
% 0.17/0.43 = ( plus_plus @ nat @ M @ N3 ) )
% 0.17/0.43 = ( ( ( M
% 0.17/0.43 = ( suc @ ( zero_zero @ nat ) ) )
% 0.17/0.43 & ( N3
% 0.17/0.43 = ( zero_zero @ nat ) ) )
% 0.17/0.43 | ( ( M
% 0.17/0.43 = ( zero_zero @ nat ) )
% 0.17/0.43 & ( N3
% 0.17/0.43 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % one_is_add
% 0.17/0.43 thf(fact_238_add__is__1,axiom,
% 0.17/0.43 ! [M: nat,N3: nat] :
% 0.17/0.43 ( ( ( plus_plus @ nat @ M @ N3 )
% 0.17/0.43 = ( suc @ ( zero_zero @ nat ) ) )
% 0.17/0.43 = ( ( ( M
% 0.17/0.43 = ( suc @ ( zero_zero @ nat ) ) )
% 0.17/0.43 & ( N3
% 0.17/0.43 = ( zero_zero @ nat ) ) )
% 0.17/0.43 | ( ( M
% 0.17/0.43 = ( zero_zero @ nat ) )
% 0.17/0.43 & ( N3
% 0.17/0.43 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_is_1
% 0.17/0.43 thf(fact_239_com_Osize__gen_I4_J,axiom,
% 0.17/0.43 ! [X41: bexp,X42: com,X43: com] :
% 0.17/0.43 ( ( size_com @ ( if @ X41 @ X42 @ X43 ) )
% 0.17/0.43 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X42 ) @ ( size_com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size_gen(4)
% 0.17/0.43 thf(fact_240_com_Osize__gen_I3_J,axiom,
% 0.17/0.43 ! [X31: com,X32: com] :
% 0.17/0.43 ( ( size_com @ ( seq @ X31 @ X32 ) )
% 0.17/0.43 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X31 ) @ ( size_com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size_gen(3)
% 0.17/0.43 thf(fact_241_com_Osize__gen_I1_J,axiom,
% 0.17/0.43 ( ( size_com @ skip )
% 0.17/0.43 = ( zero_zero @ nat ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size_gen(1)
% 0.17/0.43 thf(fact_242_com_Osize__gen_I2_J,axiom,
% 0.17/0.43 ! [X21: list @ char,X22: aexp] :
% 0.17/0.43 ( ( size_com @ ( assign @ X21 @ X22 ) )
% 0.17/0.43 = ( zero_zero @ nat ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size_gen(2)
% 0.17/0.43 thf(fact_243_com_Osize__gen_I5_J,axiom,
% 0.17/0.43 ! [X51: bexp,X52: com] :
% 0.17/0.43 ( ( size_com @ ( while @ X51 @ X52 ) )
% 0.17/0.43 = ( plus_plus @ nat @ ( size_com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size_gen(5)
% 0.17/0.43 thf(fact_244_com_Osize_I9_J,axiom,
% 0.17/0.43 ! [X41: bexp,X42: com,X43: com] :
% 0.17/0.43 ( ( size_size @ com @ ( if @ X41 @ X42 @ X43 ) )
% 0.17/0.43 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X42 ) @ ( size_size @ com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size(9)
% 0.17/0.43 thf(fact_245_com_Osize_I8_J,axiom,
% 0.17/0.43 ! [X31: com,X32: com] :
% 0.17/0.43 ( ( size_size @ com @ ( seq @ X31 @ X32 ) )
% 0.17/0.43 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X31 ) @ ( size_size @ com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size(8)
% 0.17/0.43 thf(fact_246_com_Osize_I6_J,axiom,
% 0.17/0.43 ( ( size_size @ com @ skip )
% 0.17/0.43 = ( zero_zero @ nat ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size(6)
% 0.17/0.43 thf(fact_247_com_Osize_I7_J,axiom,
% 0.17/0.43 ! [X21: list @ char,X22: aexp] :
% 0.17/0.43 ( ( size_size @ com @ ( assign @ X21 @ X22 ) )
% 0.17/0.43 = ( zero_zero @ nat ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size(7)
% 0.17/0.43 thf(fact_248_com_Osize_I10_J,axiom,
% 0.17/0.43 ! [X51: bexp,X52: com] :
% 0.17/0.43 ( ( size_size @ com @ ( while @ X51 @ X52 ) )
% 0.17/0.43 = ( plus_plus @ nat @ ( size_size @ com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % com.size(10)
% 0.17/0.43 thf(fact_249_Euclid__induct,axiom,
% 0.17/0.43 ! [P: nat > nat > $o,A2: nat,B2: nat] :
% 0.17/0.43 ( ! [A4: nat,B4: nat] :
% 0.17/0.43 ( ( P @ A4 @ B4 )
% 0.17/0.43 = ( P @ B4 @ A4 ) )
% 0.17/0.43 => ( ! [A4: nat] : ( P @ A4 @ ( zero_zero @ nat ) )
% 0.17/0.43 => ( ! [A4: nat,B4: nat] :
% 0.17/0.43 ( ( P @ A4 @ B4 )
% 0.17/0.43 => ( P @ A4 @ ( plus_plus @ nat @ A4 @ B4 ) ) )
% 0.17/0.43 => ( P @ A2 @ B2 ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % Euclid_induct
% 0.17/0.43 thf(fact_250_zero__notin__Suc__image,axiom,
% 0.17/0.43 ! [A5: set @ nat] :
% 0.17/0.43 ~ ( member @ nat @ ( zero_zero @ nat ) @ ( image @ nat @ nat @ suc @ A5 ) ) ).
% 0.17/0.43
% 0.17/0.43 % zero_notin_Suc_image
% 0.17/0.43 thf(fact_251_dependent__nat__choice,axiom,
% 0.17/0.43 ! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
% 0.17/0.43 ( ? [X_1: A] : ( P @ ( zero_zero @ nat ) @ X_1 )
% 0.17/0.43 => ( ! [X3: A,N: nat] :
% 0.17/0.43 ( ( P @ N @ X3 )
% 0.17/0.43 => ? [Y6: A] :
% 0.17/0.43 ( ( P @ ( suc @ N ) @ Y6 )
% 0.17/0.43 & ( Q @ N @ X3 @ Y6 ) ) )
% 0.17/0.43 => ? [F7: nat > A] :
% 0.17/0.43 ! [N2: nat] :
% 0.17/0.43 ( ( P @ N2 @ ( F7 @ N2 ) )
% 0.17/0.43 & ( Q @ N2 @ ( F7 @ N2 ) @ ( F7 @ ( suc @ N2 ) ) ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % dependent_nat_choice
% 0.17/0.43 thf(fact_252_add__0__iff,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( semiri456707255roduct @ A )
% 0.17/0.43 => ! [B2: A,A2: A] :
% 0.17/0.43 ( ( B2
% 0.17/0.43 = ( plus_plus @ A @ B2 @ A2 ) )
% 0.17/0.43 = ( A2
% 0.17/0.43 = ( zero_zero @ A ) ) ) ) ).
% 0.17/0.43
% 0.17/0.43 % add_0_iff
% 0.17/0.43 thf(fact_253_verit__sum__simplify,axiom,
% 0.17/0.43 ! [A: $tType] :
% 0.17/0.43 ( ( cancel1352612707id_add @ A )
% 0.17/0.43 => ! [A2: A] :
% 0.17/0.43 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 0.17/0.43 = A2 ) ) ).
% 0.17/0.43
% 0.17/0.43 % verit_sum_simplify
% 0.17/0.43 thf(fact_254_Inf_OINF__identity__eq,axiom,
% 0.17/0.43 ! [A: $tType,Inf: ( set @ A ) > A,A5: set @ A] :
% 0.17/0.43 ( ( Inf
% 0.17/0.43 @ ( image @ A @ A
% 0.17/0.43 @ ^ [X: A] : X
% 0.17/0.43 @ A5 ) )
% 0.17/0.43 = ( Inf @ A5 ) ) ).
% 0.17/0.43
% 0.17/0.43 % Inf.INF_identity_eq
% 0.17/0.43
% 0.17/0.43 % Type constructors (21)
% 0.17/0.43 thf(tcon_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
% 0.17/0.43 semiri456707255roduct @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add,axiom,
% 0.17/0.43 ordere779506340up_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
% 0.17/0.43 linord219039673up_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Ocancel__comm__monoid__add,axiom,
% 0.17/0.43 cancel1352612707id_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Ocancel__semigroup__add,axiom,
% 0.17/0.43 cancel_semigroup_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Oab__semigroup__add,axiom,
% 0.17/0.43 ab_semigroup_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Ocomm__monoid__add,axiom,
% 0.17/0.43 comm_monoid_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Osemigroup__add,axiom,
% 0.17/0.43 semigroup_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Omonoid__add,axiom,
% 0.17/0.43 monoid_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Ogroup__add,axiom,
% 0.17/0.43 group_add @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Int_Oint___Groups_Ozero,axiom,
% 0.17/0.43 zero @ int ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct_1,axiom,
% 0.17/0.43 semiri456707255roduct @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
% 0.17/0.43 canoni770627133id_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add_2,axiom,
% 0.17/0.43 ordere779506340up_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Ocancel__comm__monoid__add_3,axiom,
% 0.17/0.43 cancel1352612707id_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Ocancel__semigroup__add_4,axiom,
% 0.17/0.43 cancel_semigroup_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Oab__semigroup__add_5,axiom,
% 0.17/0.43 ab_semigroup_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Ocomm__monoid__add_6,axiom,
% 0.17/0.43 comm_monoid_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Osemigroup__add_7,axiom,
% 0.17/0.43 semigroup_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Omonoid__add_8,axiom,
% 0.17/0.43 monoid_add @ nat ).
% 0.17/0.43
% 0.17/0.43 thf(tcon_Nat_Onat___Groups_Ozero_9,axiom,
% 0.17/0.43 zero @ nat ).
% 0.17/0.43
% 0.17/0.43 % Helper facts (3)
% 0.17/0.43 thf(help_If_3_1_T,axiom,
% 0.17/0.43 ! [P: $o] :
% 0.17/0.43 ( ( P = $true )
% 0.17/0.43 | ( P = $false ) ) ).
% 0.17/0.43
% 0.17/0.43 thf(help_If_2_1_T,axiom,
% 0.17/0.43 ! [A: $tType,X4: A,Y: A] :
% 0.17/0.43 ( ( if2 @ A @ $false @ X4 @ Y )
% 0.17/0.43 = Y ) ).
% 0.17/0.43
% 0.17/0.43 thf(help_If_1_1_T,axiom,
% 0.17/0.43 ! [A: $tType,X4: A,Y: A] :
% 0.17/0.43 ( ( if2 @ A @ $true @ X4 @ Y )
% 0.17/0.43 = X4 ) ).
% 0.17/0.43
% 0.17/0.43 % Conjectures (1)
% 0.17/0.43 thf(conj_0,conjecture,
% 0.17/0.43 ( ( relati1493963588_hoare @ p @ c @ c2 @ q )
% 0.17/0.43 = ( ( relati1493963588_hoare @ p @ c @ skip @ ( relati332478480decomp @ p @ c @ c2 @ q ) )
% 0.17/0.43 & ( relati1493963588_hoare @ ( relati332478480decomp @ p @ c @ c2 @ q ) @ skip @ c2 @ q ) ) ) ).
% 0.17/0.43
% 0.17/0.43 %------------------------------------------------------------------------------
% 0.17/0.43 ------------------------
% 3.86/1.94 ---- Embedded in THF ---
% 3.86/1.95 %%% This output was generated by embedproblem, version 1.9.5 (library version 1.9).
% 3.86/1.95 %%% Generated on Tue Feb 24 08:29:45 EST 2026
% 3.86/1.95 %%% using '$$dhol' embedding, version 1.3.0.
% 3.86/1.95 %%% Logic specification used:
% 3.86/1.95 %%% thf(spec, logic, $$dhol).
% 3.86/1.95
% 3.86/1.95 % SZS output start ListOfTHF for /export/starexec/sandbox2/tmp/tmp.UcMyW68zoN/DTF2DTF23713.p
% 3.86/1.95 thf(ty_t_Product__Type_Oprod, type, product_prod: ($tType > ($tType > $tType))).
% 3.86/1.95 thf(ty_t_String_Ochar, type, char: $tType).
% 3.86/1.95 thf(ty_t_List_Olist, type, list: ($tType > $tType)).
% 3.86/1.95 thf(ty_t_BExp_Obexp, type, bexp: $tType).
% 3.86/1.95 thf(ty_t_AExp_Oaexp, type, aexp: $tType).
% 3.86/1.95 thf(ty_t_Set_Oset, type, set: ($tType > $tType)).
% 3.86/1.95 thf(ty_t_Nat_Onat, type, nat: $tType).
% 3.86/1.95 thf(ty_t_Int_Oint, type, int: $tType).
% 3.86/1.95 thf(ty_t_Com_Ocom, type, com: $tType).
% 3.86/1.95 thf(sy_cl_Groups_Ozero, type, zero: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Ogroup__add, type, group_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Omonoid__add, type, monoid_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Osemigroup__add, type, semigroup_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Ocomm__monoid__add, type, comm_monoid_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Oab__semigroup__add, type, ab_semigroup_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Ocancel__semigroup__add, type, cancel_semigroup_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Ocancel__comm__monoid__add, type, cancel1352612707id_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Olinordered__ab__group__add, type, linord219039673up_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Oordered__ab__semigroup__add, type, ordere779506340up_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Groups_Ocanonically__ordered__monoid__add, type, canoni770627133id_add: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct, type, semiri456707255roduct: (!> [A:$tType]: ($o))).
% 3.86/1.95 thf(sy_c_AExp_Oaval, type, aval: (aexp > (((list @ char) > int) > int))).
% 3.86/1.95 thf(sy_c_BExp_Obval, type, bval: (bexp > (((list @ char) > int) > $o))).
% 3.86/1.95 thf(sy_c_Big__Step_Obig__step, type, big_big_step: (((product_prod @ com) @ ((list @ char) > int)) > (((list @ char) > int) > $o))).
% 3.86/1.95 thf(sy_c_Com_Ocom_OAssign, type, assign: ((list @ char) > (aexp > com))).
% 3.86/1.95 thf(sy_c_Com_Ocom_OIf, type, if: (bexp > (com > (com > com)))).
% 3.86/1.95 thf(sy_c_Com_Ocom_OSKIP, type, skip: com).
% 3.86/1.95 thf(sy_c_Com_Ocom_OSeq, type, seq: (com > (com > com))).
% 3.86/1.95 thf(sy_c_Com_Ocom_OWhile, type, while: (bexp > (com > com))).
% 3.86/1.95 thf(sy_c_Com_Ocom_Ocase__com, type, case_com: (!> [A:$tType]: ((A > (((list @ char) > (aexp > A)) > ((com > (com > A)) > ((bexp > (com > (com > A))) > ((bexp > (com > A)) > (com > A))))))))).
% 3.86/1.95 thf(sy_c_Com_Ocom_Orec__com, type, rec_com: (!> [A:$tType]: ((A > (((list @ char) > (aexp > A)) > ((com > (com > (A > (A > A)))) > ((bexp > (com > (com > (A > (A > A))))) > ((bexp > (com > (A > A))) > (com > A))))))))).
% 3.86/1.95 thf(sy_c_Com_Ocom_Osize__com, type, size_com: (com > nat)).
% 3.86/1.95 thf(sy_c_Fun_Ofun__upd, type, fun_upd: (!> [A:$tType,B:$tType]: (((A > B) > (A > (B > (A > B))))))).
% 3.86/1.95 thf(sy_c_Groups_Oplus__class_Oplus, type, plus_plus: (!> [A:$tType]: ((A > (A > A))))).
% 3.86/1.95 thf(sy_c_Groups_Ozero__class_Ozero, type, zero_zero: (!> [A:$tType]: (A))).
% 3.86/1.95 thf(sy_c_If, type, if2: (!> [A:$tType]: (($o > (A > (A > A)))))).
% 3.86/1.95 thf(sy_c_Nat_OSuc, type, suc: (nat > nat)).
% 3.86/1.95 thf(sy_c_Nat_Osize__class_Osize, type, size_size: (!> [A:$tType]: ((A > nat)))).
% 3.86/1.95 thf(sy_c_Product__Type_OPair, type, product_Pair: (!> [A:$tType,B:$tType]: ((A > (B > ((product_prod @ A) @ B)))))).
% 3.86/1.95 thf(sy_c_Product__Type_Ocurry, type, product_curry: (!> [A:$tType,B:$tType,C:$tType]: (((((product_prod @ A) @ B) > C) > (A > (B > C)))))).
% 3.86/1.95 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))))).
% 3.86/1.95 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))))).
% 3.86/1.95 thf(sy_c_Product__Type_Oprod_Ocase__prod, type, product_case_prod: (!> [A:$tType,B:$tType,C:$tType]: (((A > (B > C)) > (((product_prod @ A) @ B) > C))))).
% 3.86/1.95 thf(sy_c_Product__Type_Oprod_Oswap, type, product_swap: (!> [A:$tType,B:$tType]: ((((product_prod @ A) @ B) > ((product_prod @ B) @ A))))).
% 3.86/1.95 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Odecomp, type, relati332478480decomp: ((((list @ char) > int) > (((list @ char) > int) > $o)) > (com > (com > ((((list @ char) > int) > (((list @ char) > int) > $o)) > (((list @ char) > int) > (((list @ char) > int) > $o))))))).
% 3.86/1.95 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oflip, type, relati1716060877e_flip: ((((list @ char) > int) > (((list @ char) > int) > $o)) > (((list @ char) > int) > (((list @ char) > int) > $o)))).
% 3.86/1.95 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))))))))).
% 3.86/1.95 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))))).
% 3.86/1.95 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))))).
% 3.86/1.95 thf(sy_c_Set_OCollect, type, collect: (!> [A:$tType]: (((A > $o) > (set @ A))))).
% 3.86/1.95 thf(sy_c_Set_Oimage, type, image: (!> [A:$tType,B:$tType]: (((A > B) > ((set @ A) > (set @ B)))))).
% 3.86/1.95 thf(sy_c_member, type, member: (!> [A:$tType]: ((A > ((set @ A) > $o))))).
% 3.86/1.95 thf(sy_v_P, type, p: (((list @ char) > int) > (((list @ char) > int) > $o))).
% 3.86/1.95 thf(sy_v_Q, type, q: (((list @ char) > int) > (((list @ char) > int) > $o))).
% 3.86/1.95 thf(sy_v_c, type, c: com).
% 3.86/1.95 thf(sy_v_c_H, type, c2: com).
% 3.86/1.95 thf(fact_0_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))))).
% 3.86/1.95 thf(fact_1_completeness, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_2_ir__valid__decomp, axiom, (relati167478067_valid = (^ [P2:(((list @ char) > int) > (((list @ char) > int) > $o)),C4:com,C5:com,Q2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P2) @ C4) @ skip) @ ((((relati332478480decomp @ P2) @ C4) @ C5) @ Q2)) & ((((relati167478067_valid @ ((((relati332478480decomp @ P2) @ C4) @ C5) @ Q2)) @ skip) @ C5) @ Q2)))))).
% 3.86/1.95 thf(fact_3_ir__Skip__Skip, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o))]: (((((relati1493963588_hoare @ P) @ skip) @ skip) @ P)))).
% 3.86/1.95 thf(fact_4_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) = (! [S:((list @ char) > int),S2:((list @ char) > int)]: ((((Q @ S) @ S2) => ((P @ S) @ S2)))))))).
% 3.86/1.95 thf(fact_5_ir__pre, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P3:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((P @ S3) @ S4) => ((P3 @ S3) @ S4)))) => ((((relati1493963588_hoare @ P3) @ C2) @ C3) @ Q)))))).
% 3.86/1.95 thf(fact_6_ir__post, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),Q3:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((Q3 @ S3) @ S4) => ((Q @ S3) @ S4)))) => ((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q3)))))).
% 3.86/1.95 thf(fact_7_ir__conseq, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P3:(((list @ char) > int) > (((list @ char) > int) > $o)),Q3:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((P @ S3) @ S4) => ((P3 @ S3) @ S4)))) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((Q3 @ S3) @ S4) => ((Q @ S3) @ S4)))) => ((((relati1493963588_hoare @ P3) @ C2) @ C3) @ Q3))))))).
% 3.86/1.95 thf(fact_8_ir__valid__decomp1, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => (((((relati167478067_valid @ P) @ C2) @ skip) @ ((((relati332478480decomp @ P) @ C2) @ C3) @ Q)) & ((((relati167478067_valid @ ((((relati332478480decomp @ P) @ C2) @ C3) @ Q)) @ skip) @ C3) @ Q)))))).
% 3.86/1.95 thf(fact_9_ir__valid__decomp2, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,R:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: (((((((relati167478067_valid @ P) @ C2) @ skip) @ R) & ((((relati167478067_valid @ R) @ skip) @ C3) @ Q)) => ((((relati167478067_valid @ P) @ C2) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_10_ir__Seq1, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ P) @ C2) @ C3) @ Q) => (((((relati1493963588_hoare @ Q) @ D) @ skip) @ R) => ((((relati1493963588_hoare @ P) @ ((seq @ C2) @ D)) @ C3) @ R)))))).
% 3.86/1.95 thf(fact_11_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))))).
% 3.86/1.95 thf(fact_12_Seq1__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => (((((relati167478067_valid @ Q) @ D) @ skip) @ R) => ((((relati167478067_valid @ P) @ ((seq @ C2) @ D)) @ C3) @ R)))))).
% 3.86/1.95 thf(fact_13_Seq2__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D:com,C3:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ skip) @ Q) => (((((relati167478067_valid @ Q) @ D) @ C3) @ R) => ((((relati167478067_valid @ P) @ ((seq @ C2) @ D)) @ C3) @ R)))))).
% 3.86/1.95 thf(fact_14_conseq__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P3:(((list @ char) > int) > (((list @ char) > int) > $o)),Q3:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((P @ S3) @ S4) => ((P3 @ S3) @ S4)))) => ((! [S3:((list @ char) > int),S4:((list @ char) > int)]: ((((Q3 @ S3) @ S4) => ((Q @ S3) @ S4)))) => ((((relati167478067_valid @ P3) @ C2) @ C3) @ Q3))))))).
% 3.86/1.95 thf(fact_15_com_Osimps_I25_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > A)),F4:(bexp > (com > (com > A))),F5:(bexp > (com > A))]: (((((((((case_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ skip) = F1)))).
% 3.86/1.95 thf(fact_16_com_Osimps_I30_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > (A > (A > A)))),F4:(bexp > (com > (com > (A > (A > A))))),F5:(bexp > (com > (A > A)))]: (((((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ skip) = F1)))).
% 3.86/1.95 thf(fact_17_ir__Skip__sym, axiom, (! [Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com]: (((! [T2:((list @ char) > int),T3:((list @ char) > int)]: ((((Q @ T3) @ T2) => (? [S5:((list @ char) > int)]: ((((P @ S5) @ T2) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S5)) @ T3))))))) => ((((relati1493963588_hoare @ P) @ C3) @ skip) @ Q))))).
% 3.86/1.95 thf(fact_18_ir__Skip, axiom, (! [Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com]: (((! [T2:((list @ char) > int),T3:((list @ char) > int)]: ((((Q @ T2) @ T3) => (? [S5:((list @ char) > int)]: ((((P @ T2) @ S5) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S5)) @ T3))))))) => ((((relati1493963588_hoare @ P) @ skip) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_19_com_Odistinct_I1_J, axiom, (! [X21:(list @ char),X22:aexp]: ((skip != ((assign @ X21) @ X22))))).
% 3.86/1.95 thf(fact_20_com_Oinject_I2_J, axiom, (! [X31:com,X32:com,Y31:com,Y32:com]: (((((seq @ X31) @ X32) = ((seq @ Y31) @ Y32)) = ((X31 = Y31) & (X32 = Y32)))))).
% 3.86/1.95 thf(fact_21_com_Oinject_I1_J, axiom, (! [X21:(list @ char),X22:aexp,Y21:(list @ char),Y22:aexp]: (((((assign @ X21) @ X22) = ((assign @ Y21) @ Y22)) = ((X21 = Y21) & (X22 = Y22)))))).
% 3.86/1.95 thf(fact_22_Seq__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),C2:com,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),D:com,D2:com,R:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => (((((relati167478067_valid @ Q) @ D) @ D2) @ R) => ((((relati167478067_valid @ P) @ ((seq @ C2) @ D)) @ ((seq @ C3) @ D2)) @ R)))))).
% 3.86/1.95 thf(fact_23_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))))).
% 3.86/1.95 thf(fact_24_meh__simp, axiom, (! [S6:((list @ char) > int),T4:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ skip) @ S6)) @ T4) = (S6 = T4))))).
% 3.86/1.95 thf(fact_25_Skip__ir__valid, axiom, (! [Q:(((list @ char) > int) > (((list @ char) > int) > $o)),P:(((list @ char) > int) > (((list @ char) > int) > $o)),C3:com]: (((! [T2:((list @ char) > int),T3:((list @ char) > int)]: ((((Q @ T2) @ T3) => (? [S5:((list @ char) > int)]: ((((P @ T2) @ S5) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S5)) @ T3))))))) => ((((relati167478067_valid @ P) @ skip) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_26_com_Osimps_I32_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > (A > (A > A)))),F4:(bexp > (com > (com > (A > (A > A))))),F5:(bexp > (com > (A > A))),X31:com,X32:com]: (((((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ ((seq @ X31) @ X32)) = ((((F3 @ X31) @ X32) @ (((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ X31)) @ (((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ X32)))))).
% 3.86/1.95 thf(fact_27_com_Osimps_I31_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > (A > (A > A)))),F4:(bexp > (com > (com > (A > (A > A))))),F5:(bexp > (com > (A > A))),X21:(list @ char),X22:aexp]: (((((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ ((assign @ X21) @ X22)) = ((F2 @ X21) @ X22))))).
% 3.86/1.95 thf(fact_28_com_Osimps_I27_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > A)),F4:(bexp > (com > (com > A))),F5:(bexp > (com > A)),X31:com,X32:com]: (((((((((case_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ ((seq @ X31) @ X32)) = ((F3 @ X31) @ X32))))).
% 3.86/1.95 thf(fact_29_com_Osimps_I26_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > A)),F4:(bexp > (com > (com > A))),F5:(bexp > (com > A)),X21:(list @ char),X22:aexp]: (((((((((case_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ ((assign @ X21) @ X22)) = ((F2 @ X21) @ X22))))).
% 3.86/1.95 thf(fact_30_com_Odistinct_I9_J, axiom, (! [X21:(list @ char),X22:aexp,X31:com,X32:com]: ((((assign @ X21) @ X22) != ((seq @ X31) @ X32))))).
% 3.86/1.95 thf(fact_31_ir__valid__def, axiom, (relati167478067_valid = (^ [P2:(((list @ char) > int) > (((list @ char) > int) > $o)),C4:com,C5:com,Q2:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((! [T5:((list @ char) > int),T6:((list @ char) > int)]: ((((Q2 @ T5) @ T6) => (? [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P2 @ S) @ S2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C4) @ S)) @ T5) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C5) @ S2)) @ T6)))))))))))).
% 3.86/1.95 thf(fact_32_com_Odistinct_I3_J, axiom, (! [X31:com,X32:com]: ((skip != ((seq @ X31) @ X32))))).
% 3.86/1.95 thf(fact_33_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_2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S1)) @ S_2) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ S_2)) @ S32)))))))))))).
% 3.86/1.95 thf(fact_34_Seq__assoc, axiom, (! [C1:com,C22:com,C32:com,S7:((list @ char) > int),S6:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((seq @ ((seq @ C1) @ C22)) @ C32)) @ S7)) @ S6) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((seq @ C1) @ ((seq @ C22) @ C32))) @ S7)) @ S6))))).
% 3.86/1.95 thf(fact_35_Seq, axiom, (! [C_1:com,S_1:((list @ char) > int),S_22:((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_22) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C_2) @ S_22)) @ S_3) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((seq @ C_1) @ C_2)) @ S_1)) @ S_3)))))).
% 3.86/1.95 thf(fact_36_SkipE, axiom, (! [S7:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ skip) @ S7)) @ T7) => (T7 = S7))))).
% 3.86/1.95 thf(fact_37_Skip, axiom, (! [S7:((list @ char) > int)]: (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ skip) @ S7)) @ S7)))).
% 3.86/1.95 thf(fact_38_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)))))).
% 3.86/1.95 thf(fact_39_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)))))).
% 3.86/1.95 thf(fact_40_sim__sym, axiom, (! [C2:com,C3:com]: (((! [S:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S)) @ T5)))) = (! [S:((list @ char) > int),T5:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S)) @ T5) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S)) @ T5)))))))).
% 3.86/1.95 thf(fact_41_sim__refl, axiom, (! [C2:com,S8:((list @ char) > int),T8:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S8)) @ T8) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S8)) @ T8))))).
% 3.86/1.95 thf(fact_42_sim__trans, axiom, (! [C2:com,C3:com,C6:com]: (((! [S3:((list @ char) > int),T2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S3)) @ T2) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T2)))) => ((! [S3:((list @ char) > int),T2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T2) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C6) @ S3)) @ T2)))) => (! [S8:((list @ char) > int),T8:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S8)) @ T8) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C6) @ S8)) @ T8))))))))).
% 3.86/1.95 thf(fact_43_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))))).
% 3.86/1.95 thf(fact_44_old_Oprod_Oexhaust, axiom, (! [A:$tType,B:$tType,Y:((product_prod @ A) @ B)]: ((~ ((! [A4:A,B4:B]: ((Y != ((((product_Pair @ A) @ B) @ A4) @ B4))))))))).
% 3.86/1.95 thf(fact_45_mem__Collect__eq, axiom, (! [A:$tType,A2:A,P:(A > $o)]: (((((member @ A) @ A2) @ ((collect @ A) @ P)) = (P @ A2))))).
% 3.86/1.95 thf(fact_46_Collect__mem__eq, axiom, (! [A:$tType,A5:(set @ A)]: ((((collect @ A) @ (^ [X:A]: ((((member @ A) @ X) @ A5)))) = A5)))).
% 3.86/1.95 thf(fact_47_Collect__cong, axiom, (! [A:$tType,P:(A > $o),Q:(A > $o)]: (((! [X3:A]: (((P @ X3) = (Q @ X3)))) => (((collect @ A) @ P) = ((collect @ A) @ Q)))))).
% 3.86/1.95 thf(fact_48_ext, axiom, (! [B:$tType,A:$tType,F:(A > B),G:(A > B)]: (((! [X3:A]: (((F @ X3) = (G @ X3)))) => (F = G))))).
% 3.86/1.95 thf(fact_49_prod__induct7, axiom, (! [G2:$tType,F6:$tType,E:$tType,D3:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2)))))) > $o),X4:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2))))))]: (((! [A4:A,B4:B,C7:C,D4:D3,E2:E,F7:F6,G3:G2]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2)))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2))))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2)))) @ C7) @ ((((product_Pair @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2))) @ D4) @ ((((product_Pair @ E) @ ((product_prod @ F6) @ G2)) @ E2) @ ((((product_Pair @ F6) @ G2) @ F7) @ G3))))))))) => (P @ X4))))).
% 3.86/1.95 thf(fact_50_prod__induct6, axiom, (! [F6:$tType,E:$tType,D3:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6))))) > $o),X4:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6)))))]: (((! [A4:A,B4:B,C7:C,D4:D3,E2:E,F7:F6]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6)))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6))) @ C7) @ ((((product_Pair @ D3) @ ((product_prod @ E) @ F6)) @ D4) @ ((((product_Pair @ E) @ F6) @ E2) @ F7)))))))) => (P @ X4))))).
% 3.86/1.95 thf(fact_51_prod__induct5, axiom, (! [E:$tType,D3:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ E)))) > $o),X4:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ E))))]: (((! [A4:A,B4:B,C7:C,D4:D3,E2:E]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ E)))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ E))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D3) @ E)) @ C7) @ ((((product_Pair @ D3) @ E) @ D4) @ E2))))))) => (P @ X4))))).
% 3.86/1.95 thf(fact_52_prod__induct4, axiom, (! [D3:$tType,C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D3))) > $o),X4:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D3)))]: (((! [A4:A,B4:B,C7:C,D4:D3]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D3))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ D3)) @ B4) @ ((((product_Pair @ C) @ D3) @ C7) @ D4)))))) => (P @ X4))))).
% 3.86/1.95 thf(fact_53_prod__induct3, axiom, (! [C:$tType,B:$tType,A:$tType,P:(((product_prod @ A) @ ((product_prod @ B) @ C)) > $o),X4:((product_prod @ A) @ ((product_prod @ B) @ C))]: (((! [A4:A,B4:B,C7:C]: ((P @ ((((product_Pair @ A) @ ((product_prod @ B) @ C)) @ A4) @ ((((product_Pair @ B) @ C) @ B4) @ C7))))) => (P @ X4))))).
% 3.86/1.95 thf(fact_54_prod__cases7, axiom, (! [A:$tType,B:$tType,C:$tType,D3:$tType,E:$tType,F6:$tType,G2:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2))))))]: ((~ ((! [A4:A,B4:B,C7:C,D4:D3,E2:E,F7:F6,G3:G2]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2)))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2))))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2)))) @ C7) @ ((((product_Pair @ D3) @ ((product_prod @ E) @ ((product_prod @ F6) @ G2))) @ D4) @ ((((product_Pair @ E) @ ((product_prod @ F6) @ G2)) @ E2) @ ((((product_Pair @ F6) @ G2) @ F7) @ G3)))))))))))))).
% 3.86/1.95 thf(fact_55_prod__cases6, axiom, (! [A:$tType,B:$tType,C:$tType,D3:$tType,E:$tType,F6:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6)))))]: ((~ ((! [A4:A,B4:B,C7:C,D4:D3,E2:E,F7:F6]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6))))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6)))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D3) @ ((product_prod @ E) @ F6))) @ C7) @ ((((product_Pair @ D3) @ ((product_prod @ E) @ F6)) @ D4) @ ((((product_Pair @ E) @ F6) @ E2) @ F7))))))))))))).
% 3.86/1.95 thf(fact_56_prod__cases5, axiom, (! [A:$tType,B:$tType,C:$tType,D3:$tType,E:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ E))))]: ((~ ((! [A4:A,B4:B,C7:C,D4:D3,E2:E]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ E)))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ ((product_prod @ D3) @ E))) @ B4) @ ((((product_Pair @ C) @ ((product_prod @ D3) @ E)) @ C7) @ ((((product_Pair @ D3) @ E) @ D4) @ E2)))))))))))).
% 3.86/1.95 thf(fact_57_prod__cases4, axiom, (! [A:$tType,B:$tType,C:$tType,D3:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D3)))]: ((~ ((! [A4:A,B4:B,C7:C,D4:D3]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ ((product_prod @ C) @ D3))) @ A4) @ ((((product_Pair @ B) @ ((product_prod @ C) @ D3)) @ B4) @ ((((product_Pair @ C) @ D3) @ C7) @ D4))))))))))).
% 3.86/1.95 thf(fact_58_prod__cases3, axiom, (! [A:$tType,B:$tType,C:$tType,Y:((product_prod @ A) @ ((product_prod @ B) @ C))]: ((~ ((! [A4:A,B4:B,C7:C]: ((Y != ((((product_Pair @ A) @ ((product_prod @ B) @ C)) @ A4) @ ((((product_Pair @ B) @ C) @ B4) @ C7)))))))))).
% 3.86/1.95 thf(fact_59_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)))))))).
% 3.86/1.95 thf(fact_60_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))))).
% 3.86/1.95 thf(fact_61_surj__pair, axiom, (! [A:$tType,B:$tType,P4:((product_prod @ A) @ B)]: ((? [X3:A,Y3:B]: ((P4 = ((((product_Pair @ A) @ B) @ X3) @ Y3))))))).
% 3.86/1.95 thf(fact_62_big__step__determ, axiom, (! [C2:com,S7:((list @ char) > int),T7:((list @ char) > int),U:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S7)) @ T7) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S7)) @ U) => (U = T7)))))).
% 3.86/1.95 thf(fact_63_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))))).
% 3.86/1.95 thf(fact_64_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))))).
% 3.86/1.95 thf(fact_65_ssubst__Pair__rhs, axiom, (! [B:$tType,A:$tType,R2:A,S7:B,R:(set @ ((product_prod @ A) @ B)),S6:B]: (((((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ R2) @ S7)) @ R) => ((S6 = S7) => (((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ R2) @ S6)) @ R)))))).
% 3.86/1.95 thf(fact_66_curry__conv, axiom, (! [A:$tType,C:$tType,B:$tType]: (((((product_curry @ B) @ C) @ A) = (^ [F8:(((product_prod @ B) @ C) > A),A6:B,B5:C]: ((F8 @ ((((product_Pair @ B) @ C) @ A6) @ B5)))))))).
% 3.86/1.95 thf(fact_67_commute__if, axiom, (! [B1:bexp,B22:bexp,C11:com,C12:com,C22:com,S8:((list @ char) > int),T8:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B1) @ (((if @ B22) @ C11) @ C12)) @ C22)) @ S8)) @ T8) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B22) @ (((if @ B1) @ C11) @ C22)) @ (((if @ B1) @ C12) @ C22))) @ S8)) @ T8))))).
% 3.86/1.95 thf(fact_68_triv__if, axiom, (! [B2:bexp,C2:com,S8:((list @ char) > int),T8:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C2) @ C2)) @ S8)) @ T8) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S8)) @ T8))))).
% 3.86/1.95 thf(fact_69_curryI, axiom, (! [A:$tType,B:$tType,F:(((product_prod @ A) @ B) > $o),A2:A,B2:B]: (((F @ ((((product_Pair @ A) @ B) @ A2) @ B2)) => ((((((product_curry @ A) @ B) @ $o) @ F) @ A2) @ B2))))).
% 3.86/1.95 thf(fact_70_while__unfold, axiom, (! [B2:bexp,C2:com,S8:((list @ char) > int),T8:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S8)) @ T8) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ ((seq @ C2) @ ((while @ B2) @ C2))) @ skip)) @ S8)) @ T8))))).
% 3.86/1.95 thf(fact_71_com_Oinject_I4_J, axiom, (! [X51:bexp,X52:com,Y51:bexp,Y52:com]: (((((while @ X51) @ X52) = ((while @ Y51) @ Y52)) = ((X51 = Y51) & (X52 = Y52)))))).
% 3.86/1.95 thf(fact_72_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))))))).
% 3.86/1.95 thf(fact_73_com_Odistinct_I19_J, axiom, (! [X41:bexp,X42:com,X43:com,X51:bexp,X52:com]: (((((if @ X41) @ X42) @ X43) != ((while @ X51) @ X52))))).
% 3.86/1.95 thf(fact_74_com_Odistinct_I7_J, axiom, (! [X51:bexp,X52:com]: ((skip != ((while @ X51) @ X52))))).
% 3.86/1.95 thf(fact_75_com_Odistinct_I17_J, axiom, (! [X31:com,X32:com,X51:bexp,X52:com]: ((((seq @ X31) @ X32) != ((while @ X51) @ X52))))).
% 3.86/1.95 thf(fact_76_com_Odistinct_I13_J, axiom, (! [X21:(list @ char),X22:aexp,X51:bexp,X52:com]: ((((assign @ X21) @ X22) != ((while @ X51) @ X52))))).
% 3.86/1.95 thf(fact_77_com_Osimps_I29_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > A)),F4:(bexp > (com > (com > A))),F5:(bexp > (com > A)),X51:bexp,X52:com]: (((((((((case_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ ((while @ X51) @ X52)) = ((F5 @ X51) @ X52))))).
% 3.86/1.95 thf(fact_78_com_Osimps_I34_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > (A > (A > A)))),F4:(bexp > (com > (com > (A > (A > A))))),F5:(bexp > (com > (A > A))),X51:bexp,X52:com]: (((((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ ((while @ X51) @ X52)) = (((F5 @ X51) @ X52) @ (((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ X52)))))).
% 3.86/1.95 thf(fact_79_com_Odistinct_I5_J, axiom, (! [X41:bexp,X42:com,X43:com]: ((skip != (((if @ X41) @ X42) @ X43))))).
% 3.86/1.95 thf(fact_80_com_Odistinct_I15_J, axiom, (! [X31:com,X32:com,X41:bexp,X42:com,X43:com]: ((((seq @ X31) @ X32) != (((if @ X41) @ X42) @ X43))))).
% 3.86/1.95 thf(fact_81_com_Odistinct_I11_J, axiom, (! [X21:(list @ char),X22:aexp,X41:bexp,X42:com,X43:com]: ((((assign @ X21) @ X22) != (((if @ X41) @ X42) @ X43))))).
% 3.86/1.95 thf(fact_82_com_Osimps_I28_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > A)),F4:(bexp > (com > (com > A))),F5:(bexp > (com > A)),X41:bexp,X42:com,X43:com]: (((((((((case_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ (((if @ X41) @ X42) @ X43)) = (((F4 @ X41) @ X42) @ X43))))).
% 3.86/1.95 thf(fact_83_curryD, axiom, (! [A:$tType,B:$tType,F:(((product_prod @ A) @ B) > $o),A2:A,B2:B]: ((((((((product_curry @ A) @ B) @ $o) @ F) @ A2) @ B2) => (F @ ((((product_Pair @ A) @ B) @ A2) @ B2)))))).
% 3.86/1.95 thf(fact_84_curryE, axiom, (! [A:$tType,B:$tType,F:(((product_prod @ A) @ B) > $o),A2:A,B2:B]: ((((((((product_curry @ A) @ B) @ $o) @ F) @ A2) @ B2) => (F @ ((((product_Pair @ A) @ B) @ A2) @ B2)))))).
% 3.86/1.95 thf(fact_85_com_Osimps_I33_J, axiom, (! [A:$tType,F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > (A > (A > A)))),F4:(bexp > (com > (com > (A > (A > A))))),F5:(bexp > (com > (A > A))),X41:bexp,X42:com,X43:com]: (((((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ (((if @ X41) @ X42) @ X43)) = (((((F4 @ X41) @ X42) @ X43) @ (((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ X42)) @ (((((((rec_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ X43)))))).
% 3.86/1.95 thf(fact_86_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))))))))).
% 3.86/1.95 thf(fact_87_com_Oexhaust, axiom, (! [Y:com]: (((Y != skip) => ((! [X212:(list @ char),X222:aexp]: ((Y != ((assign @ X212) @ X222)))) => ((! [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))))))))))))).
% 3.86/1.95 thf(fact_88_sim__while__cong, axiom, (! [C2:com,C3:com,B2:bexp]: (((! [S3:((list @ char) > int),T2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S3)) @ T2) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T2)))) => (! [S8:((list @ char) > int),T8:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S8)) @ T8) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C3)) @ S8)) @ T8)))))))).
% 3.86/1.95 thf(fact_89_sim__while__cong__aux, axiom, (! [B2:bexp,C2:com,S7:((list @ char) > int),T7:((list @ char) > int),C3:com]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S7)) @ T7) => ((! [S3:((list @ char) > int),T2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S3)) @ T2) = ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S3)) @ T2)))) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C3)) @ S7)) @ T7)))))).
% 3.86/1.95 thf(fact_90_IfE, axiom, (! [B2:bexp,C1:com,C22:com,S7:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C1) @ C22)) @ S7)) @ T7) => ((((bval @ B2) @ S7) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S7)) @ T7)))) => (~ (((~ (((bval @ B2) @ S7))) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ S7)) @ T7))))))))))).
% 3.86/1.95 thf(fact_91_IfTrue, axiom, (! [B2:bexp,S7:((list @ char) > int),C_1:com,T7:((list @ char) > int),C_2:com]: ((((bval @ B2) @ S7) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C_1) @ S7)) @ T7) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C_1) @ C_2)) @ S7)) @ T7)))))).
% 3.86/1.95 thf(fact_92_IfFalse, axiom, (! [B2:bexp,S7:((list @ char) > int),C_2:com,T7:((list @ char) > int),C_1:com]: (((~ (((bval @ B2) @ S7))) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C_2) @ S7)) @ T7) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ (((if @ B2) @ C_1) @ C_2)) @ S7)) @ T7)))))).
% 3.86/1.95 thf(fact_93_WhileE, axiom, (! [B2:bexp,C2:com,S7:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S7)) @ T7) => (((T7 = S7) => ((bval @ B2) @ S7)) => (~ ((((bval @ B2) @ S7) => (! [S_2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S7)) @ S_2) => (~ (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S_2)) @ T7)))))))))))))).
% 3.86/1.95 thf(fact_94_WhileTrue, axiom, (! [B2:bexp,S_1:((list @ char) > int),C2:com,S_22:((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_22) => (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S_22)) @ S_3) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S_1)) @ S_3))))))).
% 3.86/1.95 thf(fact_95_WhileFalse, axiom, (! [B2:bexp,S7:((list @ char) > int),C2:com]: (((~ (((bval @ B2) @ S7))) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S7)) @ S7))))).
% 3.86/1.95 thf(fact_96_swap__simp, axiom, (! [A:$tType,B:$tType,X4:B,Y:A]: (((((product_swap @ B) @ A) @ ((((product_Pair @ B) @ A) @ X4) @ Y)) = ((((product_Pair @ A) @ B) @ Y) @ X4))))).
% 3.86/1.95 thf(fact_97_swap__swap, axiom, (! [B:$tType,A:$tType,P4:((product_prod @ A) @ B)]: (((((product_swap @ B) @ A) @ (((product_swap @ A) @ B) @ P4)) = P4)))).
% 3.86/1.95 thf(fact_98_pair__in__swap__image, axiom, (! [A:$tType,B:$tType,Y:A,X4:B,A5:(set @ ((product_prod @ B) @ A))]: (((((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ Y) @ X4)) @ ((((image @ ((product_prod @ B) @ A)) @ ((product_prod @ A) @ B)) @ ((product_swap @ B) @ A)) @ A5)) = (((member @ ((product_prod @ B) @ A)) @ ((((product_Pair @ B) @ A) @ X4) @ Y)) @ A5))))).
% 3.86/1.95 thf(fact_99_internal__case__prod__def, axiom, (! [C:$tType,B:$tType,A:$tType]: (((((produc2004651681e_prod @ A) @ B) @ C) = (((product_case_prod @ A) @ B) @ C))))).
% 3.86/1.95 thf(fact_100_Assign__complete, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),X1:(list @ char),X2:aexp,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o)),T7:((list @ char) > int),T4:((list @ char) > int)]: ((((((relati167478067_valid @ P) @ ((assign @ X1) @ X2)) @ C3) @ Q) => (((Q @ T7) @ T4) => (? [S4:((list @ char) > int)]: (((? [V:int]: ((((P @ (((((fun_upd @ (list @ char)) @ int) @ T7) @ X1) @ V)) @ S4) & ((T7 @ X1) = ((aval @ X2) @ (((((fun_upd @ (list @ char)) @ int) @ T7) @ X1) @ V)))))) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S4)) @ T4))))))))).
% 3.86/1.95 thf(fact_101_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & ((bval @ B2) @ S))))) @ ((seq @ C2) @ ((while @ B2) @ C2))) @ C3) @ Q) => ((((relati167478067_valid @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_102_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,T7:((list @ char) > int),T4:((list @ char) > int)]: (((! [N:nat,T2:((list @ char) > int),T3:((list @ char) > int)]: (((((P @ (((plus_plus @ nat) @ K) @ (suc @ N))) @ T2) @ T3) => (? [S8:((list @ char) > int)]: (((((P @ (((plus_plus @ nat) @ K) @ N)) @ S8) @ T3) & (((bval @ B2) @ S8) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S8)) @ T2)))))))) => ((! [T2:((list @ char) > int),T3:((list @ char) > int)]: ((((Q @ T2) @ T3) => (? [S8:((list @ char) > int),S5:((list @ char) > int)]: (((? [N2:nat]: ((((P @ (((plus_plus @ nat) @ K) @ N2)) @ S8) @ S5))) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ S8)) @ T2) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S5)) @ T3)))))))) => (((Q @ T7) @ T4) => (? [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)) @ T7) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S4)) @ T4))))))))))).
% 3.86/1.95 thf(fact_103_mem__case__prodI2, axiom, (! [C:$tType,B:$tType,A:$tType,P4:((product_prod @ A) @ B),Z:C,C2:(A > (B > (set @ C)))]: (((! [A4:A,B4:B]: (((P4 = ((((product_Pair @ A) @ B) @ A4) @ B4)) => (((member @ C) @ Z) @ ((C2 @ A4) @ B4))))) => (((member @ C) @ Z) @ (((((product_case_prod @ A) @ B) @ (set @ C)) @ C2) @ P4)))))).
% 3.86/1.95 thf(fact_104_mem__case__prodI, axiom, (! [A:$tType,B:$tType,C:$tType,Z:A,C2:(B > (C > (set @ A))),A2:B,B2:C]: (((((member @ A) @ Z) @ ((C2 @ A2) @ B2)) => (((member @ A) @ Z) @ (((((product_case_prod @ B) @ C) @ (set @ A)) @ C2) @ ((((product_Pair @ B) @ C) @ A2) @ B2))))))).
% 3.86/1.95 thf(fact_105_case__prodI2_H, axiom, (! [A:$tType,B:$tType,C:$tType,P4:((product_prod @ A) @ B),C2:(A > (B > (C > $o))),X4:C]: (((! [A4:A,B4:B]: (((((((product_Pair @ A) @ B) @ A4) @ B4) = P4) => (((C2 @ A4) @ B4) @ X4)))) => ((((((product_case_prod @ A) @ B) @ (C > $o)) @ C2) @ P4) @ X4))))).
% 3.86/1.95 thf(fact_106_case__prodI2, axiom, (! [B:$tType,A:$tType,P4:((product_prod @ A) @ B),C2:(A > (B > $o))]: (((! [A4:A,B4:B]: (((P4 = ((((product_Pair @ A) @ B) @ A4) @ B4)) => ((C2 @ A4) @ B4)))) => (((((product_case_prod @ A) @ B) @ $o) @ C2) @ P4))))).
% 3.86/1.95 thf(fact_107_case__prodI, axiom, (! [A:$tType,B:$tType,F:(A > (B > $o)),A2:A,B2:B]: ((((F @ A2) @ B2) => (((((product_case_prod @ A) @ B) @ $o) @ F) @ ((((product_Pair @ A) @ B) @ A2) @ B2)))))).
% 3.86/1.95 thf(fact_108_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P_1 @ S) @ S2) | ((P_2 @ S) @ S2))))) @ C2) @ C3) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((((Q_1 @ T5) @ T6) | ((Q_2 @ T5) @ T6)))))))))).
% 3.86/1.95 thf(fact_109_case__prod__conv, axiom, (! [B:$tType,A:$tType,C:$tType,F:(B > (C > A)),A2:B,B2:C]: (((((((product_case_prod @ B) @ C) @ A) @ F) @ ((((product_Pair @ B) @ C) @ A2) @ B2)) = ((F @ A2) @ B2))))).
% 3.86/1.95 thf(fact_110_curry__case__prod, axiom, (! [C:$tType,B:$tType,A:$tType,F:(A > (B > C))]: ((((((product_curry @ A) @ B) @ C) @ ((((product_case_prod @ A) @ B) @ C) @ F)) = F)))).
% 3.86/1.95 thf(fact_111_case__prod__curry, axiom, (! [C:$tType,B:$tType,A:$tType,F:(((product_prod @ A) @ B) > C)]: ((((((product_case_prod @ A) @ B) @ C) @ ((((product_curry @ A) @ B) @ C) @ F)) = F)))).
% 3.86/1.95 thf(fact_112_case__swap, axiom, (! [A:$tType,B:$tType,C:$tType,F:(C > (B > A)),P4:((product_prod @ C) @ B)]: (((((((product_case_prod @ B) @ C) @ A) @ (^ [Y4:B,X:C]: (((F @ X) @ Y4)))) @ (((product_swap @ C) @ B) @ P4)) = (((((product_case_prod @ C) @ B) @ A) @ F) @ P4))))).
% 3.86/1.95 thf(fact_113_pair__imageI, axiom, (! [C:$tType,B:$tType,A:$tType,A2:A,B2:B,A5:(set @ ((product_prod @ A) @ B)),F:(A > (B > C))]: (((((member @ ((product_prod @ A) @ B)) @ ((((product_Pair @ A) @ B) @ A2) @ B2)) @ A5) => (((member @ C) @ ((F @ A2) @ B2)) @ ((((image @ ((product_prod @ A) @ B)) @ C) @ ((((product_case_prod @ A) @ B) @ C) @ F)) @ A5)))))).
% 3.86/1.95 thf(fact_114_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))))).
% 3.86/1.95 thf(fact_115_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))))).
% 3.86/1.95 thf(fact_116_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (~ (((bval @ B2) @ S))))))) @ skip) @ C3) @ Q) => ((((relati167478067_valid @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_117_Assign__blah, axiom, (! [T7:((list @ char) > int),X4:(list @ char),E3:aexp,V2:int]: ((((T7 @ X4) = ((aval @ E3) @ (((((fun_upd @ (list @ char)) @ int) @ T7) @ X4) @ V2))) => ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((assign @ X4) @ E3)) @ (((((fun_upd @ (list @ char)) @ int) @ T7) @ X4) @ V2))) @ T7))))).
% 3.86/1.95 thf(fact_118_curry__def, axiom, (! [C:$tType,B:$tType,A:$tType]: (((((product_curry @ A) @ B) @ C) = (^ [C4:(((product_prod @ A) @ B) > C),X:A,Y4:B]: ((C4 @ ((((product_Pair @ A) @ B) @ X) @ Y4)))))))).
% 3.86/1.95 thf(fact_119_prod_Ocase__distrib, axiom, (! [C:$tType,D3:$tType,B:$tType,A:$tType,H:(C > D3),F:(A > (B > C)),Prod:((product_prod @ A) @ B)]: (((H @ (((((product_case_prod @ A) @ B) @ C) @ F) @ Prod)) = (((((product_case_prod @ A) @ B) @ D3) @ (^ [X13:A,X24:B]: ((H @ ((F @ X13) @ X24))))) @ Prod))))).
% 3.86/1.95 thf(fact_120_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P_1 @ S) @ S2) | ((P_2 @ S) @ S2))))) @ C2) @ C3) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((((Q_1 @ T5) @ T6) | ((Q_2 @ T5) @ T6)))))))))).
% 3.86/1.95 thf(fact_121_com_Ocase__distrib, axiom, (! [A:$tType,B:$tType,H:(A > B),F1:A,F2:((list @ char) > (aexp > A)),F3:(com > (com > A)),F4:(bexp > (com > (com > A))),F5:(bexp > (com > A)),Com:com]: (((H @ (((((((case_com @ A) @ F1) @ F2) @ F3) @ F4) @ F5) @ Com)) = (((((((case_com @ B) @ (H @ F1)) @ (^ [X13:(list @ char),X24:aexp]: ((H @ ((F2 @ X13) @ X24))))) @ (^ [X13:com,X24:com]: ((H @ ((F3 @ X13) @ X24))))) @ (^ [X13:bexp,X24:com,X34:com]: ((H @ (((F4 @ X13) @ X24) @ X34))))) @ (^ [X13:bexp,X24:com]: ((H @ ((F5 @ X13) @ X24))))) @ Com))))).
% 3.86/1.95 thf(fact_122_assign__upd__blah, axiom, (! [X1:(list @ char),S7:((list @ char) > int),X2:aexp]: (((^ [A6:(list @ char)]: (((((if2 @ int) @ (A6 = X1)) @ (S7 @ X1)) @ ((((((fun_upd @ (list @ char)) @ int) @ S7) @ X1) @ ((aval @ X2) @ S7)) @ A6)))) = S7)))).
% 3.86/1.95 thf(fact_123_flip__def, axiom, (relati1716060877e_flip = (^ [P2:(((list @ char) > int) > (((list @ char) > int) > $o)),S:((list @ char) > int),S2:((list @ char) > int)]: (((P2 @ S2) @ S))))).
% 3.86/1.95 thf(fact_124_curry__K, axiom, (! [B:$tType,C:$tType,A:$tType,C2:C]: ((((((product_curry @ A) @ B) @ C) @ (^ [X:((product_prod @ A) @ B)]: (C2))) = (^ [X:A,Y4:B]: (C2)))))).
% 3.86/1.95 thf(fact_125_cond__case__prod__eta, axiom, (! [C:$tType,B:$tType,A:$tType,F:(A > (B > C)),G:(((product_prod @ A) @ B) > C)]: (((! [X3:A,Y3:B]: ((((F @ X3) @ Y3) = (G @ ((((product_Pair @ A) @ B) @ X3) @ Y3))))) => (((((product_case_prod @ A) @ B) @ C) @ F) = G))))).
% 3.86/1.95 thf(fact_126_case__prod__eta, axiom, (! [C:$tType,B:$tType,A:$tType,F:(((product_prod @ A) @ B) > C)]: ((((((product_case_prod @ A) @ B) @ C) @ (^ [X:A,Y4:B]: ((F @ ((((product_Pair @ A) @ B) @ X) @ Y4))))) = F)))).
% 3.86/1.95 thf(fact_127_case__prodE2, axiom, (! [B:$tType,A:$tType,C:$tType,Q:(A > $o),P:(B > (C > A)),Z:((product_prod @ B) @ C)]: (((Q @ (((((product_case_prod @ B) @ C) @ A) @ P) @ Z)) => (~ ((! [X3:B,Y3:C]: (((Z = ((((product_Pair @ B) @ C) @ X3) @ Y3)) => (~ ((Q @ ((P @ X3) @ Y3))))))))))))).
% 3.86/1.95 thf(fact_128_case__prodE_H, axiom, (! [B:$tType,A:$tType,C:$tType,C2:(A > (B > (C > $o))),P4:((product_prod @ A) @ B),Z:C]: ((((((((product_case_prod @ A) @ B) @ (C > $o)) @ C2) @ P4) @ Z) => (~ ((! [X3:A,Y3:B]: (((P4 = ((((product_Pair @ A) @ B) @ X3) @ Y3)) => (~ ((((C2 @ X3) @ Y3) @ Z)))))))))))).
% 3.86/1.95 thf(fact_129_case__prodD_H, axiom, (! [B:$tType,A:$tType,C:$tType,R:(A > (B > (C > $o))),A2:A,B2:B,C2:C]: ((((((((product_case_prod @ A) @ B) @ (C > $o)) @ R) @ ((((product_Pair @ A) @ B) @ A2) @ B2)) @ C2) => (((R @ A2) @ B2) @ C2))))).
% 3.86/1.95 thf(fact_130_case__prodE, axiom, (! [A:$tType,B:$tType,C2:(A > (B > $o)),P4:((product_prod @ A) @ B)]: (((((((product_case_prod @ A) @ B) @ $o) @ C2) @ P4) => (~ ((! [X3:A,Y3:B]: (((P4 = ((((product_Pair @ A) @ B) @ X3) @ Y3)) => (~ (((C2 @ X3) @ Y3)))))))))))).
% 3.86/1.95 thf(fact_131_case__prodD, axiom, (! [A:$tType,B:$tType,F:(A > (B > $o)),A2:A,B2:B]: (((((((product_case_prod @ A) @ B) @ $o) @ F) @ ((((product_Pair @ A) @ B) @ A2) @ B2)) => ((F @ A2) @ B2))))).
% 3.86/1.95 thf(fact_132_mem__case__prodE, axiom, (! [B:$tType,A:$tType,C:$tType,Z:A,C2:(B > (C > (set @ A))),P4:((product_prod @ B) @ C)]: (((((member @ A) @ Z) @ (((((product_case_prod @ B) @ C) @ (set @ A)) @ C2) @ P4)) => (~ ((! [X3:B,Y3:C]: (((P4 = ((((product_Pair @ B) @ C) @ X3) @ Y3)) => (~ ((((member @ A) @ Z) @ ((C2 @ X3) @ Y3))))))))))))).
% 3.86/1.95 thf(fact_133_old_Oprod_Ocase, axiom, (! [A:$tType,C:$tType,B:$tType,F:(A > (B > C)),X1:A,X2:B]: (((((((product_case_prod @ A) @ B) @ C) @ F) @ ((((product_Pair @ A) @ B) @ X1) @ X2)) = ((F @ X1) @ X2))))).
% 3.86/1.95 thf(fact_134_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (~ (((bval @ B2) @ S))))))) @ C_2) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ (((if @ B2) @ C_1) @ C_2)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_135_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & ((bval @ B2) @ S))))) @ C_1) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ (((if @ B2) @ C_1) @ C_2)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_136_AssignE, axiom, (! [X4:(list @ char),A2:aexp,S7:((list @ char) > int),T7:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((assign @ X4) @ A2)) @ S7)) @ T7) => (T7 = (((((fun_upd @ (list @ char)) @ int) @ S7) @ X4) @ ((aval @ A2) @ S7))))))).
% 3.86/1.95 thf(fact_137_assign__simp, axiom, (! [X4:(list @ char),A2:aexp,S7:((list @ char) > int),S6:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((assign @ X4) @ A2)) @ S7)) @ S6) = (S6 = (((((fun_upd @ (list @ char)) @ int) @ S7) @ X4) @ ((aval @ A2) @ S7))))))).
% 3.86/1.95 thf(fact_138_Assign, axiom, (! [X4:(list @ char),A2:aexp,S7:((list @ char) > int)]: (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((assign @ X4) @ A2)) @ S7)) @ (((((fun_upd @ (list @ char)) @ int) @ S7) @ X4) @ ((aval @ A2) @ S7)))))).
% 3.86/1.95 thf(fact_139_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (~ (((bval @ B2) @ S))))))) @ skip) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_140_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & ((bval @ B2) @ S))))) @ ((seq @ C2) @ ((while @ B2) @ C2))) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ ((while @ B2) @ C2)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_141_add__Suc__right, axiom, (! [M:nat,N3:nat]: (((((plus_plus @ nat) @ M) @ (suc @ N3)) = (suc @ (((plus_plus @ nat) @ M) @ N3)))))).
% 3.86/1.95 thf(fact_142_image__ident, axiom, (! [A:$tType,Y5:(set @ A)]: ((((((image @ A) @ A) @ (^ [X:A]: (X))) @ Y5) = Y5)))).
% 3.86/1.95 thf(fact_143_fun__upd__upd, axiom, (! [A:$tType,B:$tType,F:(A > B),X4:A,Y:B,Z:B]: (((((((fun_upd @ A) @ B) @ (((((fun_upd @ A) @ B) @ F) @ X4) @ Y)) @ X4) @ Z) = (((((fun_upd @ A) @ B) @ F) @ X4) @ Z))))).
% 3.86/1.95 thf(fact_144_fun__upd__triv, axiom, (! [B:$tType,A:$tType,F:(A > B),X4:A]: (((((((fun_upd @ A) @ B) @ F) @ X4) @ (F @ X4)) = F)))).
% 3.86/1.95 thf(fact_145_fun__upd__apply, axiom, (! [A:$tType,B:$tType]: ((((fun_upd @ B) @ A) = (^ [F8:(B > A),X:B,Y4:A,Z2:B]: (((((if2 @ A) @ (Z2 = X)) @ Y4) @ (F8 @ Z2)))))))).
% 3.86/1.95 thf(fact_146_image__eqI, axiom, (! [A:$tType,B:$tType,B2:A,F:(B > A),X4:B,A5:(set @ B)]: (((B2 = (F @ X4)) => ((((member @ B) @ X4) @ A5) => (((member @ A) @ B2) @ ((((image @ B) @ A) @ F) @ A5))))))).
% 3.86/1.95 thf(fact_147_old_Onat_Oinject, axiom, (! [Nat:nat,Nat2:nat]: ((((suc @ Nat) = (suc @ Nat2)) = (Nat = Nat2))))).
% 3.86/1.95 thf(fact_148_nat_Oinject, axiom, (! [X2:nat,Y2:nat]: ((((suc @ X2) = (suc @ Y2)) = (X2 = Y2))))).
% 3.86/1.95 thf(fact_149_split__part, axiom, (! [B:$tType,A:$tType,P:$o,Q:(A > (B > $o))]: ((((((product_case_prod @ A) @ B) @ $o) @ (^ [A6:A,B5:B]: ((P & ((Q @ A6) @ B5))))) = (^ [Ab:((product_prod @ A) @ B)]: ((P & (((((product_case_prod @ A) @ B) @ $o) @ Q) @ Ab)))))))).
% 3.86/1.95 thf(fact_150_prod_Odisc__eq__case, axiom, (! [B:$tType,A:$tType,Prod:((product_prod @ A) @ B)]: ((((((product_case_prod @ A) @ B) @ $o) @ (^ [Uu:A,Uv:B]: ($true))) @ Prod)))).
% 3.86/1.95 thf(fact_151_rev__image__eqI, axiom, (! [B:$tType,A:$tType,X4:A,A5:(set @ A),B2:B,F:(A > B)]: (((((member @ A) @ X4) @ A5) => ((B2 = (F @ X4)) => (((member @ B) @ B2) @ ((((image @ A) @ B) @ F) @ A5))))))).
% 3.86/1.95 thf(fact_152_ball__imageD, axiom, (! [A:$tType,B:$tType,F:(B > A),A5:(set @ B),P:(A > $o)]: (((! [X3:A]: (((((member @ A) @ X3) @ ((((image @ B) @ A) @ F) @ A5)) => (P @ X3)))) => (! [X5:B]: (((((member @ B) @ X5) @ A5) => (P @ (F @ X5))))))))).
% 3.86/1.95 thf(fact_153_image__cong, axiom, (! [B:$tType,A:$tType,M2:(set @ A),N4:(set @ A),F:(A > B),G:(A > B)]: (((M2 = N4) => ((! [X3:A]: (((((member @ A) @ X3) @ N4) => ((F @ X3) = (G @ X3))))) => (((((image @ A) @ B) @ F) @ M2) = ((((image @ A) @ B) @ G) @ N4))))))).
% 3.86/1.95 thf(fact_154_bex__imageD, axiom, (! [A:$tType,B:$tType,F:(B > A),A5:(set @ B),P:(A > $o)]: (((? [X5:A]: (((((member @ A) @ X5) @ ((((image @ B) @ A) @ F) @ A5)) & (P @ X5)))) => (? [X3:B]: (((((member @ B) @ X3) @ A5) & (P @ (F @ X3))))))))).
% 3.86/1.95 thf(fact_155_image__iff, axiom, (! [A:$tType,B:$tType,Z:A,F:(B > A),A5:(set @ B)]: (((((member @ A) @ Z) @ ((((image @ B) @ A) @ F) @ A5)) = (? [X:B]: (((((member @ B) @ X) @ A5) & (Z = (F @ X))))))))).
% 3.86/1.95 thf(fact_156_imageI, axiom, (! [B:$tType,A:$tType,X4:A,A5:(set @ A),F:(A > B)]: (((((member @ A) @ X4) @ A5) => (((member @ B) @ (F @ X4)) @ ((((image @ A) @ B) @ F) @ A5)))))).
% 3.86/1.95 thf(fact_157_n__not__Suc__n, axiom, (! [N3:nat]: ((N3 != (suc @ N3))))).
% 3.86/1.95 thf(fact_158_Suc__inject, axiom, (! [X4:nat,Y:nat]: ((((suc @ X4) = (suc @ Y)) => (X4 = Y))))).
% 3.86/1.95 thf(fact_159_fun__upd__idem__iff, axiom, (! [A:$tType,B:$tType,F:(A > B),X4:A,Y:B]: ((((((((fun_upd @ A) @ B) @ F) @ X4) @ Y) = F) = ((F @ X4) = Y))))).
% 3.86/1.95 thf(fact_160_fun__upd__twist, axiom, (! [A:$tType,B:$tType,A2:A,C2:A,M:(A > B),B2:B,D:B]: (((A2 != C2) => ((((((fun_upd @ A) @ B) @ (((((fun_upd @ A) @ B) @ M) @ A2) @ B2)) @ C2) @ D) = (((((fun_upd @ A) @ B) @ (((((fun_upd @ A) @ B) @ M) @ C2) @ D)) @ A2) @ B2)))))).
% 3.86/1.95 thf(fact_161_fun__upd__other, axiom, (! [B:$tType,A:$tType,Z:A,X4:A,F:(A > B),Y:B]: (((Z != X4) => (((((((fun_upd @ A) @ B) @ F) @ X4) @ Y) @ Z) = (F @ Z)))))).
% 3.86/1.95 thf(fact_162_fun__upd__same, axiom, (! [B:$tType,A:$tType,F:(B > A),X4:B,Y:A]: ((((((((fun_upd @ B) @ A) @ F) @ X4) @ Y) @ X4) = Y)))).
% 3.86/1.95 thf(fact_163_fun__upd__idem, axiom, (! [A:$tType,B:$tType,F:(B > A),X4:B,Y:A]: ((((F @ X4) = Y) => ((((((fun_upd @ B) @ A) @ F) @ X4) @ Y) = F))))).
% 3.86/1.95 thf(fact_164_fun__upd__eqD, axiom, (! [A:$tType,B:$tType,F:(A > B),X4:A,Y:B,G:(A > B),Z:B]: ((((((((fun_upd @ A) @ B) @ F) @ X4) @ Y) = (((((fun_upd @ A) @ B) @ G) @ X4) @ Z)) => (Y = Z))))).
% 3.86/1.95 thf(fact_165_fun__upd__def, axiom, (! [B:$tType,A:$tType]: ((((fun_upd @ A) @ B) = (^ [F8:(A > B),A6:A,B5:B,X:A]: (((((if2 @ B) @ (X = A6)) @ B5) @ (F8 @ X)))))))).
% 3.86/1.95 thf(fact_166_Compr__image__eq, axiom, (! [A:$tType,B:$tType,F:(B > A),A5:(set @ B),P:(A > $o)]: ((((collect @ A) @ (^ [X:A]: (((((member @ A) @ X) @ ((((image @ B) @ A) @ F) @ A5)) & (P @ X))))) = ((((image @ B) @ A) @ F) @ ((collect @ B) @ (^ [X:B]: (((((member @ B) @ X) @ A5) & (P @ (F @ X))))))))))).
% 3.86/1.95 thf(fact_167_image__image, axiom, (! [A:$tType,B:$tType,C:$tType,F:(B > A),G:(C > B),A5:(set @ C)]: ((((((image @ B) @ A) @ F) @ ((((image @ C) @ B) @ G) @ A5)) = ((((image @ C) @ A) @ (^ [X:C]: ((F @ (G @ X))))) @ A5))))).
% 3.86/1.95 thf(fact_168_imageE, axiom, (! [A:$tType,B:$tType,B2:A,F:(B > A),A5:(set @ B)]: (((((member @ A) @ B2) @ ((((image @ B) @ A) @ F) @ A5)) => (~ ((! [X3:B]: (((B2 = (F @ X3)) => (~ ((((member @ B) @ X3) @ A5)))))))))))).
% 3.86/1.95 thf(fact_169_add__Suc, axiom, (! [M:nat,N3:nat]: (((((plus_plus @ nat) @ (suc @ M)) @ N3) = (suc @ (((plus_plus @ nat) @ M) @ N3)))))).
% 3.86/1.95 thf(fact_170_nat__arith_Osuc1, axiom, (! [A5:nat,K:nat,A2:nat]: (((A5 = (((plus_plus @ nat) @ K) @ A2)) => ((suc @ A5) = (((plus_plus @ nat) @ K) @ (suc @ A2))))))).
% 3.86/1.95 thf(fact_171_add__Suc__shift, axiom, (! [M:nat,N3:nat]: (((((plus_plus @ nat) @ (suc @ M)) @ N3) = (((plus_plus @ nat) @ M) @ (suc @ N3)))))).
% 3.86/1.95 thf(fact_172_case__prod__app, axiom, (! [A:$tType,D3:$tType,C:$tType,B:$tType]: (((((product_case_prod @ B) @ C) @ (D3 > A)) = (^ [F8:(B > (C > (D3 > A))),X:((product_prod @ B) @ C),Y4:D3]: ((((((product_case_prod @ B) @ C) @ A) @ (^ [L:B,R3:C]: ((((F8 @ L) @ R3) @ Y4)))) @ X))))))).
% 3.86/1.95 thf(fact_173_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)))))))).
% 3.86/1.95 thf(fact_174_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)))))))).
% 3.86/1.95 thf(fact_175_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))))))))).
% 3.86/1.95 thf(fact_176_add__mono__thms__linordered__semiring_I4_J, axiom, (! [A:$tType]: (((ordere779506340up_add @ A) => (! [I:A,J:A,K:A,L2:A]: ((((I = J) & (K = L2)) => ((((plus_plus @ A) @ I) @ K) = (((plus_plus @ A) @ J) @ L2))))))))).
% 3.86/1.95 thf(fact_177_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)))))))))).
% 3.86/1.95 thf(fact_178_group__cancel_Oadd2, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [B6:A,K:A,B2:A,A2:A]: (((B6 = (((plus_plus @ A) @ K) @ B2)) => ((((plus_plus @ A) @ A2) @ B6) = (((plus_plus @ A) @ K) @ (((plus_plus @ A) @ A2) @ B2)))))))))).
% 3.86/1.95 thf(fact_179_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))))))))).
% 3.86/1.95 thf(fact_180_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)))))))).
% 3.86/1.95 thf(fact_181_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)))))))).
% 3.86/1.95 thf(fact_182_add_Ocommute, axiom, (! [A:$tType]: (((ab_semigroup_add @ A) => ((plus_plus @ A) = (^ [A6:A,B5:A]: ((((plus_plus @ A) @ B5) @ A6)))))))).
% 3.86/1.95 thf(fact_183_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))))))))).
% 3.86/1.95 thf(fact_184_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)))))))).
% 3.86/1.95 thf(fact_185_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)))))))).
% 3.86/1.95 thf(fact_186_case__prod__Pair__iden, axiom, (! [B:$tType,A:$tType,P4:((product_prod @ A) @ B)]: (((((((product_case_prod @ A) @ B) @ ((product_prod @ A) @ B)) @ ((product_Pair @ A) @ B)) @ P4) = P4)))).
% 3.86/1.95 thf(fact_187_Assign__ir__valid, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),X4:(list @ char),E3:aexp,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati167478067_valid @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((? [V3:int]: ((((P @ (((((fun_upd @ (list @ char)) @ int) @ T5) @ X4) @ V3)) @ T6) & ((T5 @ X4) = ((aval @ E3) @ (((((fun_upd @ (list @ char)) @ int) @ T5) @ X4) @ V3))))))))) @ skip) @ C3) @ Q) => ((((relati167478067_valid @ P) @ ((assign @ X4) @ E3)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_188_split__cong, axiom, (! [C:$tType,B:$tType,A:$tType,Q4:((product_prod @ A) @ B),F:(A > (B > C)),G:(A > (B > C)),P4:((product_prod @ A) @ B)]: (((! [X3:A,Y3:B]: (((((((product_Pair @ A) @ B) @ X3) @ Y3) = Q4) => (((F @ X3) @ Y3) = ((G @ X3) @ Y3))))) => ((P4 = Q4) => ((((((product_case_prod @ A) @ B) @ C) @ F) @ P4) = (((((product_case_prod @ A) @ B) @ C) @ G) @ Q4))))))).
% 3.86/1.95 thf(fact_189_ir__Assign, axiom, (! [P:(((list @ char) > int) > (((list @ char) > int) > $o)),X4:(list @ char),E3:aexp,C3:com,Q:(((list @ char) > int) > (((list @ char) > int) > $o))]: ((((((relati1493963588_hoare @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((? [V3:int]: ((((P @ (((((fun_upd @ (list @ char)) @ int) @ T5) @ X4) @ V3)) @ T6) & ((T5 @ X4) = ((aval @ E3) @ (((((fun_upd @ (list @ char)) @ int) @ T5) @ X4) @ V3))))))))) @ skip) @ C3) @ Q) => ((((relati1493963588_hoare @ P) @ ((assign @ X4) @ E3)) @ C3) @ Q))))).
% 3.86/1.95 thf(fact_190_setcompr__eq__image, axiom, (! [A:$tType,B:$tType,F:(B > A),P:(B > $o)]: ((((collect @ A) @ (^ [Uu:A]: ((? [X:B]: (((Uu = (F @ X)) & (P @ X))))))) = ((((image @ B) @ A) @ F) @ ((collect @ B) @ P)))))).
% 3.86/1.95 thf(fact_191_Setcompr__eq__image, axiom, (! [A:$tType,B:$tType,F:(B > A),A5:(set @ B)]: ((((collect @ A) @ (^ [Uu:A]: ((? [X:B]: (((Uu = (F @ X)) & (((member @ B) @ X) @ A5))))))) = ((((image @ B) @ A) @ F) @ A5))))).
% 3.86/1.95 thf(fact_192_ir__valid__While2, 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 @ P) @ ((while @ B2) @ C2)) @ C3) @ Q) => ((((relati167478067_valid @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (~ (((bval @ B2) @ S))))))) @ skip) @ C3) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((((Q @ T5) @ T6) & (? [S2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S2)) @ T6) & (((P @ T5) @ S2) & (~ (((bval @ B2) @ T5))))))))))))))).
% 3.86/1.95 thf(fact_193_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 @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((? [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S)) @ T5) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S2)) @ T6) & (? [U2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ T5)) @ U2) & ((Q @ U2) @ T6)))))))))))) @ C22) @ skip) @ Q))))).
% 3.86/1.95 thf(fact_194_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)),S7:((list @ char) > int),S6:((list @ char) > int)]: ((((((relati167478067_valid @ P) @ C2) @ C3) @ Q) => ((((relati167478067_valid @ P) @ C2) @ C3) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((((Q @ S7) @ S6) & (? [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S)) @ T5) & ((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S2)) @ T6))))))))))))).
% 3.86/1.95 thf(fact_195_decomp__def, axiom, (relati332478480decomp = (^ [P2:(((list @ char) > int) > (((list @ char) > int) > $o)),C4:com,C5:com,Q2:(((list @ char) > int) > (((list @ char) > int) > $o)),T5:((list @ char) > int),S2:((list @ char) > int)]: ((? [S:((list @ char) > int),T6:((list @ char) > int)]: ((((P2 @ S) @ S2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C4) @ S)) @ T5) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C5) @ S2)) @ T6) & ((Q2 @ T5) @ T6)))))))))).
% 3.86/1.95 thf(fact_196_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) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((? [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S)) @ T5) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S2)) @ T6) & (? [U2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ T5)) @ U2) & ((Q @ U2) @ T6)))))))))))))))).
% 3.86/1.95 thf(fact_197_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & ((bval @ B2) @ S))))) @ C1) @ C3) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((((Q @ T5) @ T6) & (? [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C1) @ S)) @ T5) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S2)) @ T6) & ((bval @ B2) @ S)))))))))) & ((((relati167478067_valid @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (~ (((bval @ B2) @ S))))))) @ C22) @ C3) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((((Q @ T5) @ T6) & (? [S:((list @ char) > int),S2:((list @ char) > int)]: ((((P @ S) @ S2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C22) @ S)) @ T5) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S2)) @ T6) & (~ (((bval @ B2) @ S))))))))))))))))).
% 3.86/1.95 thf(fact_198_get__back_Osimps_I2_J, axiom, (! [A:$tType,P:(((list @ char) > int) > (A > $o)),B2:bexp,C2:com,N3:nat]: (((((((relati1010904253t_back @ A) @ P) @ B2) @ C2) @ (suc @ N3)) = (^ [T5:((list @ char) > int),T6:A]: ((? [S:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C2) @ S)) @ T5) & (((bval @ B2) @ S) & (((((((relati1010904253t_back @ A) @ P) @ B2) @ C2) @ N3) @ S) @ T6))))))))))).
% 3.86/1.95 thf(fact_199_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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: (((((((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ K) @ S) @ S2) & ((bval @ B2) @ S))))) @ C2) @ skip) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: (((((((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ (suc @ K)) @ T5) @ T6) & (? [U2:((list @ char) > int),U3:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ T5)) @ U2) & (((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ T6)) @ U3) & ((Q @ U2) @ U3))))))))))))).
% 3.86/1.95 thf(fact_200_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))))).
% 3.86/1.95 thf(fact_201_ir__valid__While3, 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 @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: (((((((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ K) @ S) @ S2) & ((bval @ B2) @ S))))) @ C2) @ C3) @ (^ [T5:((list @ char) > int),T6:((list @ char) > int)]: ((? [S2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ C3) @ S2)) @ T6) & ((((((((relati1010904253t_back @ ((list @ char) > int)) @ P) @ B2) @ C2) @ (suc @ K)) @ T5) @ S2) & (? [U2:((list @ char) > int)]: ((((big_big_step @ ((((product_Pair @ com) @ ((list @ char) > int)) @ ((while @ B2) @ C2)) @ T5)) @ U2) & ((Q @ U2) @ T6))))))))))))))).
% 3.86/1.95 thf(fact_202_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))]: (((! [N:nat]: (((((relati167478067_valid @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: (((((P @ N) @ S) @ S2) & ((bval @ B2) @ S))))) @ C2) @ skip) @ (P @ (suc @ N))))) => (((((relati167478067_valid @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((? [N5:nat]: ((((P @ N5) @ S) @ S2)))))) @ ((while @ B2) @ C2)) @ C3) @ Q) => ((((relati167478067_valid @ (P @ (zero_zero @ nat))) @ ((while @ B2) @ C2)) @ C3) @ Q)))))).
% 3.86/1.95 thf(fact_203_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))]: (((! [N:nat]: (((((relati1493963588_hoare @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: (((((P @ N) @ S) @ S2) & ((bval @ B2) @ S))))) @ C2) @ skip) @ (P @ (suc @ N))))) => (((((relati1493963588_hoare @ (^ [S:((list @ char) > int),S2:((list @ char) > int)]: ((? [N5:nat]: ((((P @ N5) @ S) @ S2)))))) @ ((while @ B2) @ C2)) @ C3) @ Q) => ((((relati1493963588_hoare @ (P @ (zero_zero @ nat))) @ ((while @ B2) @ C2)) @ C3) @ Q)))))).
% 3.86/1.95 thf(fact_204_add_Oleft__neutral, axiom, (! [A:$tType]: (((monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ (zero_zero @ A)) @ A2) = A2))))))).
% 3.86/1.95 thf(fact_205_add_Oright__neutral, axiom, (! [A:$tType]: (((monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ A2) @ (zero_zero @ A)) = A2))))))).
% 3.86/1.95 thf(fact_206_double__zero, axiom, (! [A:$tType]: (((linord219039673up_add @ A) => (! [A2:A]: ((((((plus_plus @ A) @ A2) @ A2) = (zero_zero @ A)) = (A2 = (zero_zero @ A))))))))).
% 3.86/1.95 thf(fact_207_double__zero__sym, axiom, (! [A:$tType]: (((linord219039673up_add @ A) => (! [A2:A]: ((((zero_zero @ A) = (((plus_plus @ A) @ A2) @ A2)) = (A2 = (zero_zero @ A))))))))).
% 3.86/1.95 thf(fact_208_add__cancel__left__left, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [B2:A,A2:A]: ((((((plus_plus @ A) @ B2) @ A2) = A2) = (B2 = (zero_zero @ A))))))))).
% 3.86/1.95 thf(fact_209_add__cancel__left__right, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A,B2:A]: ((((((plus_plus @ A) @ A2) @ B2) = A2) = (B2 = (zero_zero @ A))))))))).
% 3.86/1.95 thf(fact_210_add__cancel__right__left, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A,B2:A]: (((A2 = (((plus_plus @ A) @ B2) @ A2)) = (B2 = (zero_zero @ A))))))))).
% 3.86/1.95 thf(fact_211_add__cancel__right__right, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A,B2:A]: (((A2 = (((plus_plus @ A) @ A2) @ B2)) = (B2 = (zero_zero @ A))))))))).
% 3.86/1.95 thf(fact_212_add__eq__0__iff__both__eq__0, axiom, (! [A:$tType]: (((canoni770627133id_add @ A) => (! [X4:A,Y:A]: ((((((plus_plus @ A) @ X4) @ Y) = (zero_zero @ A)) = ((X4 = (zero_zero @ A)) & (Y = (zero_zero @ A)))))))))).
% 3.86/1.95 thf(fact_213_zero__eq__add__iff__both__eq__0, axiom, (! [A:$tType]: (((canoni770627133id_add @ A) => (! [X4:A,Y:A]: ((((zero_zero @ A) = (((plus_plus @ A) @ X4) @ Y)) = ((X4 = (zero_zero @ A)) & (Y = (zero_zero @ A)))))))))).
% 3.86/1.95 thf(fact_214_Nat_Oadd__0__right, axiom, (! [M:nat]: (((((plus_plus @ nat) @ M) @ (zero_zero @ nat)) = M)))).
% 3.86/1.95 thf(fact_215_add__is__0, axiom, (! [M:nat,N3:nat]: ((((((plus_plus @ nat) @ M) @ N3) = (zero_zero @ nat)) = ((M = (zero_zero @ nat)) & (N3 = (zero_zero @ nat))))))).
% 3.86/1.95 thf(fact_216_image__add__0, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [S9:(set @ A)]: ((((((image @ A) @ A) @ ((plus_plus @ A) @ (zero_zero @ A))) @ S9) = S9))))))).
% 3.86/1.95 thf(fact_217_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)))).
% 3.86/1.95 thf(fact_218_nat_Odistinct_I1_J, axiom, (! [X2:nat]: (((zero_zero @ nat) != (suc @ X2))))).
% 3.86/1.95 thf(fact_219_old_Onat_Odistinct_I2_J, axiom, (! [Nat3:nat]: (((suc @ Nat3) != (zero_zero @ nat))))).
% 3.86/1.95 thf(fact_220_old_Onat_Odistinct_I1_J, axiom, (! [Nat2:nat]: (((zero_zero @ nat) != (suc @ Nat2))))).
% 3.86/1.95 thf(fact_221_nat_OdiscI, axiom, (! [Nat:nat,X2:nat]: (((Nat = (suc @ X2)) => (Nat != (zero_zero @ nat)))))).
% 3.86/1.95 thf(fact_222_nat__induct, axiom, (! [P:(nat > $o),N3:nat]: (((P @ (zero_zero @ nat)) => ((! [N:nat]: (((P @ N) => (P @ (suc @ N))))) => (P @ N3)))))).
% 3.86/1.95 thf(fact_223_diff__induct, axiom, (! [P:(nat > (nat > $o)),M:nat,N3:nat]: (((! [X3:nat]: (((P @ X3) @ (zero_zero @ nat)))) => ((! [Y3:nat]: (((P @ (zero_zero @ nat)) @ (suc @ Y3)))) => ((! [X3:nat,Y3:nat]: ((((P @ X3) @ Y3) => ((P @ (suc @ X3)) @ (suc @ Y3))))) => ((P @ M) @ N3))))))).
% 3.86/1.95 thf(fact_224_zero__induct, axiom, (! [P:(nat > $o),K:nat]: (((P @ K) => ((! [N:nat]: (((P @ (suc @ N)) => (P @ N)))) => (P @ (zero_zero @ nat))))))).
% 3.86/1.95 thf(fact_225_Suc__neq__Zero, axiom, (! [M:nat]: (((suc @ M) != (zero_zero @ nat))))).
% 3.86/1.95 thf(fact_226_Zero__neq__Suc, axiom, (! [M:nat]: (((zero_zero @ nat) != (suc @ M))))).
% 3.86/1.95 thf(fact_227_Zero__not__Suc, axiom, (! [M:nat]: (((zero_zero @ nat) != (suc @ M))))).
% 3.86/1.95 thf(fact_228_old_Onat_Oexhaust, axiom, (! [Y:nat]: (((Y != (zero_zero @ nat)) => (~ ((! [Nat4:nat]: ((Y != (suc @ Nat4)))))))))).
% 3.86/1.95 thf(fact_229_old_Onat_Oinducts, axiom, (! [P:(nat > $o),Nat:nat]: (((P @ (zero_zero @ nat)) => ((! [Nat4:nat]: (((P @ Nat4) => (P @ (suc @ Nat4))))) => (P @ Nat)))))).
% 3.86/1.95 thf(fact_230_not0__implies__Suc, axiom, (! [N3:nat]: (((N3 != (zero_zero @ nat)) => (? [M3:nat]: ((N3 = (suc @ M3)))))))).
% 3.86/1.95 thf(fact_231_comm__monoid__add__class_Oadd__0, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ (zero_zero @ A)) @ A2) = A2))))))).
% 3.86/1.95 thf(fact_232_add_Ocomm__neutral, axiom, (! [A:$tType]: (((comm_monoid_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ A2) @ (zero_zero @ A)) = A2))))))).
% 3.86/1.95 thf(fact_233_add_Ogroup__left__neutral, axiom, (! [A:$tType]: (((group_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ (zero_zero @ A)) @ A2) = A2))))))).
% 3.86/1.95 thf(fact_234_fun__cong__unused__0, axiom, (! [A:$tType,B:$tType,C:$tType]: (((zero @ B) => (! [F:((A > B) > C),G:C]: (((F = (^ [X:(A > B)]: (G))) => ((F @ (^ [X:A]: ((zero_zero @ B)))) = G)))))))).
% 3.86/1.95 thf(fact_235_add__eq__self__zero, axiom, (! [M:nat,N3:nat]: ((((((plus_plus @ nat) @ M) @ N3) = M) => (N3 = (zero_zero @ nat)))))).
% 3.86/1.95 thf(fact_236_plus__nat_Oadd__0, axiom, (! [N3:nat]: (((((plus_plus @ nat) @ (zero_zero @ nat)) @ N3) = N3)))).
% 3.86/1.95 thf(fact_237_one__is__add, axiom, (! [M:nat,N3:nat]: ((((suc @ (zero_zero @ nat)) = (((plus_plus @ nat) @ M) @ N3)) = (((M = (suc @ (zero_zero @ nat))) & (N3 = (zero_zero @ nat))) | ((M = (zero_zero @ nat)) & (N3 = (suc @ (zero_zero @ nat))))))))).
% 3.86/1.95 thf(fact_238_add__is__1, axiom, (! [M:nat,N3:nat]: ((((((plus_plus @ nat) @ M) @ N3) = (suc @ (zero_zero @ nat))) = (((M = (suc @ (zero_zero @ nat))) & (N3 = (zero_zero @ nat))) | ((M = (zero_zero @ nat)) & (N3 = (suc @ (zero_zero @ nat))))))))).
% 3.86/1.95 thf(fact_239_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))))))).
% 3.86/1.95 thf(fact_240_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))))))).
% 3.86/1.95 thf(fact_241_com_Osize__gen_I1_J, axiom, ((size_com @ skip) = (zero_zero @ nat))).
% 3.86/1.95 thf(fact_242_com_Osize__gen_I2_J, axiom, (! [X21:(list @ char),X22:aexp]: (((size_com @ ((assign @ X21) @ X22)) = (zero_zero @ nat))))).
% 3.86/1.95 thf(fact_243_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))))))).
% 3.86/1.95 thf(fact_244_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))))))).
% 3.86/1.95 thf(fact_245_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))))))).
% 3.86/1.95 thf(fact_246_com_Osize_I6_J, axiom, (((size_size @ com) @ skip) = (zero_zero @ nat))).
% 3.86/1.95 thf(fact_247_com_Osize_I7_J, axiom, (! [X21:(list @ char),X22:aexp]: ((((size_size @ com) @ ((assign @ X21) @ X22)) = (zero_zero @ nat))))).
% 3.86/1.95 thf(fact_248_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))))))).
% 3.86/1.95 thf(fact_249_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))))))).
% 3.86/1.95 thf(fact_250_zero__notin__Suc__image, axiom, (! [A5:(set @ nat)]: ((~ ((((member @ nat) @ (zero_zero @ nat)) @ ((((image @ nat) @ nat) @ suc) @ A5))))))).
% 3.86/1.95 thf(fact_251_dependent__nat__choice, axiom, (! [A:$tType,P:(nat > (A > $o)),Q:(nat > (A > (A > $o)))]: (((? [X_1:A]: (((P @ (zero_zero @ nat)) @ X_1))) => ((! [X3:A,N:nat]: ((((P @ N) @ X3) => (? [Y6:A]: ((((P @ (suc @ N)) @ Y6) & (((Q @ N) @ X3) @ Y6))))))) => (? [F7:(nat > A)]: ((! [N2:nat]: ((((P @ N2) @ (F7 @ N2)) & (((Q @ N2) @ (F7 @ N2)) @ (F7 @ (suc @ N2))))))))))))).
% 3.86/1.95 thf(fact_252_add__0__iff, axiom, (! [A:$tType]: (((semiri456707255roduct @ A) => (! [B2:A,A2:A]: (((B2 = (((plus_plus @ A) @ B2) @ A2)) = (A2 = (zero_zero @ A))))))))).
% 3.86/1.95 thf(fact_253_verit__sum__simplify, axiom, (! [A:$tType]: (((cancel1352612707id_add @ A) => (! [A2:A]: (((((plus_plus @ A) @ A2) @ (zero_zero @ A)) = A2))))))).
% 3.86/1.95 thf(fact_254_Inf_OINF__identity__eq, axiom, (! [A:$tType,Inf:((set @ A) > A),A5:(set @ A)]: (((Inf @ ((((image @ A) @ A) @ (^ [X:A]: (X))) @ A5)) = (Inf @ A5))))).
% 3.86/1.95 thf(tcon_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct, axiom, (semiri456707255roduct @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add, axiom, (ordere779506340up_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add, axiom, (linord219039673up_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Ocancel__comm__monoid__add, axiom, (cancel1352612707id_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Ocancel__semigroup__add, axiom, (cancel_semigroup_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Oab__semigroup__add, axiom, (ab_semigroup_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Ocomm__monoid__add, axiom, (comm_monoid_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Osemigroup__add, axiom, (semigroup_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Omonoid__add, axiom, (monoid_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Ogroup__add, axiom, (group_add @ int)).
% 3.86/1.95 thf(tcon_Int_Oint___Groups_Ozero, axiom, (zero @ int)).
% 3.86/1.95 thf(tcon_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct_1, axiom, (semiri456707255roduct @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add, axiom, (canoni770627133id_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add_2, axiom, (ordere779506340up_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Ocancel__comm__monoid__add_3, axiom, (cancel1352612707id_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Ocancel__semigroup__add_4, axiom, (cancel_semigroup_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Oab__semigroup__add_5, axiom, (ab_semigroup_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Ocomm__monoid__add_6, axiom, (comm_monoid_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Osemigroup__add_7, axiom, (semigroup_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Omonoid__add_8, axiom, (monoid_add @ nat)).
% 3.86/1.95 thf(tcon_Nat_Onat___Groups_Ozero_9, axiom, (zero @ nat)).
% 3.86/1.95 thf(help_If_3_1_T, axiom, (! [P:$o]: (((P = $true) | (P = $false))))).
% 3.86/1.95 thf(help_If_2_1_T, axiom, (! [A:$tType,X4:A,Y:A]: ((((((if2 @ A) @ $false) @ X4) @ Y) = Y)))).
% 3.86/1.95 thf(help_If_1_1_T, axiom, (! [A:$tType,X4:A,Y:A]: ((((((if2 @ A) @ $true) @ X4) @ Y) = X4)))).
% 3.86/1.95 thf(conj_0, conjecture, (((((relati1493963588_hoare @ p) @ c) @ c2) @ q) = (((((relati1493963588_hoare @ p) @ c) @ skip) @ ((((relati332478480decomp @ p) @ c) @ c2) @ q)) & ((((relati1493963588_hoare @ ((((relati332478480decomp @ p) @ c) @ c2) @ q)) @ skip) @ c2) @ q)))).
% 3.86/1.95 % SZS output end ListOfTHF for /export/starexec/sandbox2/tmp/tmp.UcMyW68zoN/DTF2DTF23713.p
% 3.86/1.95 ------------------------
% 3.86/2.01 ---- Cleaned THF ---
% 3.86/2.01 thf(ty_t_Product__Type_Oprod,type,
% 3.86/2.01 product_prod: $tType > $tType > $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_String_Ochar,type,
% 3.86/2.01 char: $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_List_Olist,type,
% 3.86/2.01 list: $tType > $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_BExp_Obexp,type,
% 3.86/2.01 bexp: $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_AExp_Oaexp,type,
% 3.86/2.01 aexp: $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_Set_Oset,type,
% 3.86/2.01 set: $tType > $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_Nat_Onat,type,
% 3.86/2.01 nat: $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_Int_Oint,type,
% 3.86/2.01 int: $tType ).
% 3.86/2.01
% 3.86/2.01 thf(ty_t_Com_Ocom,type,
% 3.86/2.01 com: $tType ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Ozero,type,
% 3.86/2.01 zero:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Ogroup__add,type,
% 3.86/2.01 group_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Omonoid__add,type,
% 3.86/2.01 monoid_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Osemigroup__add,type,
% 3.86/2.01 semigroup_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Ocomm__monoid__add,type,
% 3.86/2.01 comm_monoid_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Oab__semigroup__add,type,
% 3.86/2.01 ab_semigroup_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Ocancel__semigroup__add,type,
% 3.86/2.01 cancel_semigroup_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Ocancel__comm__monoid__add,type,
% 3.86/2.01 cancel1352612707id_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Olinordered__ab__group__add,type,
% 3.86/2.01 linord219039673up_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Oordered__ab__semigroup__add,type,
% 3.86/2.01 ordere779506340up_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Groups_Ocanonically__ordered__monoid__add,type,
% 3.86/2.01 canoni770627133id_add:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_cl_Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,type,
% 3.86/2.01 semiri456707255roduct:
% 3.86/2.01 !>[A: $tType] : $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_AExp_Oaval,type,
% 3.86/2.01 aval: aexp > ( ( list @ char ) > int ) > int ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_BExp_Obval,type,
% 3.86/2.01 bval: bexp > ( ( list @ char ) > int ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Big__Step_Obig__step,type,
% 3.86/2.01 big_big_step: ( product_prod @ com @ ( ( list @ char ) > int ) ) > ( ( list @ char ) > int ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_OAssign,type,
% 3.86/2.01 assign: ( list @ char ) > aexp > com ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_OIf,type,
% 3.86/2.01 if: bexp > com > com > com ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_OSKIP,type,
% 3.86/2.01 skip: com ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_OSeq,type,
% 3.86/2.01 seq: com > com > com ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_OWhile,type,
% 3.86/2.01 while: bexp > com > com ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_Ocase__com,type,
% 3.86/2.01 case_com:
% 3.86/2.01 !>[A: $tType] : ( A > ( ( list @ char ) > aexp > A ) > ( com > com > A ) > ( bexp > com > com > A ) > ( bexp > com > A ) > com > A ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_Orec__com,type,
% 3.86/2.01 rec_com:
% 3.86/2.01 !>[A: $tType] : ( A > ( ( list @ char ) > aexp > A ) > ( com > com > A > A > A ) > ( bexp > com > com > A > A > A ) > ( bexp > com > A > A ) > com > A ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Com_Ocom_Osize__com,type,
% 3.86/2.01 size_com: com > nat ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Fun_Ofun__upd,type,
% 3.86/2.01 fun_upd:
% 3.86/2.01 !>[A: $tType,B: $tType] : ( ( A > B ) > A > B > A > B ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Groups_Oplus__class_Oplus,type,
% 3.86/2.01 plus_plus:
% 3.86/2.01 !>[A: $tType] : ( A > A > A ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Groups_Ozero__class_Ozero,type,
% 3.86/2.01 zero_zero:
% 3.86/2.01 !>[A: $tType] : A ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_If,type,
% 3.86/2.01 if2:
% 3.86/2.01 !>[A: $tType] : ( $o > A > A > A ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Nat_OSuc,type,
% 3.86/2.01 suc: nat > nat ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Nat_Osize__class_Osize,type,
% 3.86/2.01 size_size:
% 3.86/2.01 !>[A: $tType] : ( A > nat ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Product__Type_OPair,type,
% 3.86/2.01 product_Pair:
% 3.86/2.01 !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Product__Type_Ocurry,type,
% 3.86/2.01 product_curry:
% 3.86/2.01 !>[A: $tType,B: $tType,C: $tType] : ( ( ( product_prod @ A @ B ) > C ) > A > B > C ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Product__Type_Ointernal__case__prod,type,
% 3.86/2.01 produc2004651681e_prod:
% 3.86/2.01 !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
% 3.86/2.01 product_rec_prod:
% 3.86/2.01 !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Product__Type_Oprod_Ocase__prod,type,
% 3.86/2.01 product_case_prod:
% 3.86/2.01 !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Product__Type_Oprod_Oswap,type,
% 3.86/2.01 product_swap:
% 3.86/2.01 !>[A: $tType,B: $tType] : ( ( product_prod @ A @ B ) > ( product_prod @ B @ A ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Odecomp,type,
% 3.86/2.01 relati332478480decomp: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oflip,type,
% 3.86/2.01 relati1716060877e_flip: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oget__back,type,
% 3.86/2.01 relati1010904253t_back:
% 3.86/2.01 !>[A: $tType] : ( ( ( ( list @ char ) > int ) > A > $o ) > bexp > com > nat > ( ( list @ char ) > int ) > A > $o ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__hoare,type,
% 3.86/2.01 relati1493963588_hoare: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_RelationalIncorrectness__Mirabelle__uhfznwwgmv_Oir__valid,type,
% 3.86/2.01 relati167478067_valid: ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > com > com > ( ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Set_OCollect,type,
% 3.86/2.01 collect:
% 3.86/2.01 !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_Set_Oimage,type,
% 3.86/2.01 image:
% 3.86/2.01 !>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ A ) > ( set @ B ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_c_member,type,
% 3.86/2.01 member:
% 3.86/2.01 !>[A: $tType] : ( A > ( set @ A ) > $o ) ).
% 3.86/2.01
% 3.86/2.01 thf(sy_v_P,type,
% 3.86/2.01 p: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_v_Q,type,
% 3.86/2.01 q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o ).
% 3.86/2.01
% 3.86/2.01 thf(sy_v_c,type,
% 3.86/2.01 c: com ).
% 3.86/2.01
% 3.86/2.01 thf(sy_v_c_H,type,
% 3.86/2.01 c2: com ).
% 3.86/2.01
% 3.86/2.01 thf(fact_0_soundness,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_1_completeness,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( relati1493963588_hoare @ P @ C2 @ C3 @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_2_ir__valid__decomp,axiom,
% 3.86/2.01 ( relati167478067_valid
% 3.86/2.01 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ P2 @ C4 @ skip @ ( relati332478480decomp @ P2 @ C4 @ C5 @ Q2 ) )
% 3.86/2.01 & ( relati167478067_valid @ ( relati332478480decomp @ P2 @ C4 @ C5 @ Q2 ) @ skip @ C5 @ Q2 ) ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_3_ir__Skip__Skip,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] : ( relati1493963588_hoare @ P @ skip @ skip @ P ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_4_ir__hoare__Skip__Skip,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati1493963588_hoare @ P @ skip @ skip @ Q )
% 3.86/2.01 = ( ! [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q @ S @ S2 )
% 3.86/2.01 => ( P @ S @ S2 ) ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_5_ir__pre,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 3.86/2.01 ( ( P @ S3 @ S4 )
% 3.86/2.01 => ( P3 @ S3 @ S4 ) )
% 3.86/2.01 => ( relati1493963588_hoare @ P3 @ C2 @ C3 @ Q ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_6_ir__post,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q3 @ S3 @ S4 )
% 3.86/2.01 => ( Q @ S3 @ S4 ) )
% 3.86/2.01 => ( relati1493963588_hoare @ P @ C2 @ C3 @ Q3 ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_7_ir__conseq,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 3.86/2.01 ( ( P @ S3 @ S4 )
% 3.86/2.01 => ( P3 @ S3 @ S4 ) )
% 3.86/2.01 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q3 @ S3 @ S4 )
% 3.86/2.01 => ( Q @ S3 @ S4 ) )
% 3.86/2.01 => ( relati1493963588_hoare @ P3 @ C2 @ C3 @ Q3 ) ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_8_ir__valid__decomp1,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ( relati167478067_valid @ P @ C2 @ skip @ ( relati332478480decomp @ P @ C2 @ C3 @ Q ) )
% 3.86/2.01 & ( relati167478067_valid @ ( relati332478480decomp @ P @ C2 @ C3 @ Q ) @ skip @ C3 @ Q ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_9_ir__valid__decomp2,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( ( relati167478067_valid @ P @ C2 @ skip @ R )
% 3.86/2.01 & ( relati167478067_valid @ R @ skip @ C3 @ Q ) )
% 3.86/2.01 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_10_ir__Seq1,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati1493963588_hoare @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ( relati1493963588_hoare @ Q @ D @ skip @ R )
% 3.86/2.01 => ( relati1493963588_hoare @ P @ ( seq @ C2 @ D ) @ C3 @ R ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_11_ir__sym,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati1493963588_hoare @ ( relati1716060877e_flip @ P ) @ C2 @ C3 @ ( relati1716060877e_flip @ Q ) )
% 3.86/2.01 => ( relati1493963588_hoare @ P @ C3 @ C2 @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_12_Seq1__ir__valid,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ( relati167478067_valid @ Q @ D @ skip @ R )
% 3.86/2.01 => ( relati167478067_valid @ P @ ( seq @ C2 @ D ) @ C3 @ R ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_13_Seq2__ir__valid,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,C3: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ P @ C2 @ skip @ Q )
% 3.86/2.01 => ( ( relati167478067_valid @ Q @ D @ C3 @ R )
% 3.86/2.01 => ( relati167478067_valid @ P @ ( seq @ C2 @ D ) @ C3 @ R ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_14_conseq__ir__valid,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,Q3: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 3.86/2.01 ( ( P @ S3 @ S4 )
% 3.86/2.01 => ( P3 @ S3 @ S4 ) )
% 3.86/2.01 => ( ! [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q3 @ S3 @ S4 )
% 3.86/2.01 => ( Q @ S3 @ S4 ) )
% 3.86/2.01 => ( relati167478067_valid @ P3 @ C2 @ C3 @ Q3 ) ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_15_com_Osimps_I25_J,axiom,
% 3.86/2.01 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A] :
% 3.86/2.01 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ skip )
% 3.86/2.01 = F1 ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_16_com_Osimps_I30_J,axiom,
% 3.86/2.01 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A] :
% 3.86/2.01 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ skip )
% 3.86/2.01 = F1 ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_17_ir__Skip__sym,axiom,
% 3.86/2.01 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 3.86/2.01 ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q @ T3 @ T2 )
% 3.86/2.01 => ? [S5: ( list @ char ) > int] :
% 3.86/2.01 ( ( P @ S5 @ T2 )
% 3.86/2.01 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 3.86/2.01 => ( relati1493963588_hoare @ P @ C3 @ skip @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_18_ir__Skip,axiom,
% 3.86/2.01 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 3.86/2.01 ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q @ T2 @ T3 )
% 3.86/2.01 => ? [S5: ( list @ char ) > int] :
% 3.86/2.01 ( ( P @ T2 @ S5 )
% 3.86/2.01 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 3.86/2.01 => ( relati1493963588_hoare @ P @ skip @ C3 @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_19_com_Odistinct_I1_J,axiom,
% 3.86/2.01 ! [X21: list @ char,X22: aexp] :
% 3.86/2.01 ( skip
% 3.86/2.01 != ( assign @ X21 @ X22 ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_20_com_Oinject_I2_J,axiom,
% 3.86/2.01 ! [X31: com,X32: com,Y31: com,Y32: com] :
% 3.86/2.01 ( ( ( seq @ X31 @ X32 )
% 3.86/2.01 = ( seq @ Y31 @ Y32 ) )
% 3.86/2.01 = ( ( X31 = Y31 )
% 3.86/2.01 & ( X32 = Y32 ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_21_com_Oinject_I1_J,axiom,
% 3.86/2.01 ! [X21: list @ char,X22: aexp,Y21: list @ char,Y22: aexp] :
% 3.86/2.01 ( ( ( assign @ X21 @ X22 )
% 3.86/2.01 = ( assign @ Y21 @ Y22 ) )
% 3.86/2.01 = ( ( X21 = Y21 )
% 3.86/2.01 & ( X22 = Y22 ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_22_Seq__ir__valid,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,D: com,D2: com,R: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 3.86/2.01 => ( ( relati167478067_valid @ Q @ D @ D2 @ R )
% 3.86/2.01 => ( relati167478067_valid @ P @ ( seq @ C2 @ D ) @ ( seq @ C3 @ D2 ) @ R ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_23_sym__ir__valid,axiom,
% 3.86/2.01 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com,C2: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ( ( relati167478067_valid @ ( relati1716060877e_flip @ P ) @ C3 @ C2 @ ( relati1716060877e_flip @ Q ) )
% 3.86/2.01 => ( relati167478067_valid @ P @ C2 @ C3 @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_24_meh__simp,axiom,
% 3.86/2.01 ! [S6: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 3.86/2.01 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S6 ) @ T4 )
% 3.86/2.01 = ( S6 = T4 ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_25_Skip__ir__valid,axiom,
% 3.86/2.01 ! [Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C3: com] :
% 3.86/2.01 ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q @ T2 @ T3 )
% 3.86/2.01 => ? [S5: ( list @ char ) > int] :
% 3.86/2.01 ( ( P @ T2 @ S5 )
% 3.86/2.01 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 3.86/2.01 => ( relati167478067_valid @ P @ skip @ C3 @ Q ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_26_com_Osimps_I32_J,axiom,
% 3.86/2.01 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X31: com,X32: com] :
% 3.86/2.01 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( seq @ X31 @ X32 ) )
% 3.86/2.01 = ( F3 @ X31 @ X32 @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X31 ) @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X32 ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_27_com_Osimps_I31_J,axiom,
% 3.86/2.01 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X21: list @ char,X22: aexp] :
% 3.86/2.01 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( assign @ X21 @ X22 ) )
% 3.86/2.01 = ( F2 @ X21 @ X22 ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_28_com_Osimps_I27_J,axiom,
% 3.86/2.01 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X31: com,X32: com] :
% 3.86/2.01 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( seq @ X31 @ X32 ) )
% 3.86/2.01 = ( F3 @ X31 @ X32 ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_29_com_Osimps_I26_J,axiom,
% 3.86/2.01 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X21: list @ char,X22: aexp] :
% 3.86/2.01 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( assign @ X21 @ X22 ) )
% 3.86/2.01 = ( F2 @ X21 @ X22 ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_30_com_Odistinct_I9_J,axiom,
% 3.86/2.01 ! [X21: list @ char,X22: aexp,X31: com,X32: com] :
% 3.86/2.01 ( ( assign @ X21 @ X22 )
% 3.86/2.01 != ( seq @ X31 @ X32 ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_31_ir__valid__def,axiom,
% 3.86/2.01 ( relati167478067_valid
% 3.86/2.01 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.01 ! [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.01 ( ( Q2 @ T5 @ T6 )
% 3.86/2.01 => ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.01 ( ( P2 @ S @ S2 )
% 3.86/2.01 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C4 @ S ) @ T5 )
% 3.86/2.01 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C5 @ S2 ) @ T6 ) ) ) ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_32_com_Odistinct_I3_J,axiom,
% 3.86/2.01 ! [X31: com,X32: com] :
% 3.86/2.01 ( skip
% 3.86/2.01 != ( seq @ X31 @ X32 ) ) ).
% 3.86/2.01
% 3.86/2.01 thf(fact_33_SeqE,axiom,
% 3.86/2.01 ! [C1: com,C22: com,S1: ( list @ char ) > int,S32: ( list @ char ) > int] :
% 3.86/2.01 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ C22 ) @ S1 ) @ S32 )
% 3.86/2.01 => ~ ! [S_2: ( list @ char ) > int] :
% 3.86/2.01 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S1 ) @ S_2 )
% 3.86/2.02 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S_2 ) @ S32 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_34_Seq__assoc,axiom,
% 3.86/2.02 ! [C1: com,C22: com,C32: com,S7: ( list @ char ) > int,S6: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ ( seq @ C1 @ C22 ) @ C32 ) @ S7 ) @ S6 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C1 @ ( seq @ C22 @ C32 ) ) @ S7 ) @ S6 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_35_Seq,axiom,
% 3.86/2.02 ! [C_1: com,S_1: ( list @ char ) > int,S_22: ( list @ char ) > int,C_2: com,S_3: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S_1 ) @ S_22 )
% 3.86/2.02 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S_22 ) @ S_3 )
% 3.86/2.02 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( seq @ C_1 @ C_2 ) @ S_1 ) @ S_3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_36_SkipE,axiom,
% 3.86/2.02 ! [S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S7 ) @ T7 )
% 3.86/2.02 => ( T7 = S7 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_37_Skip,axiom,
% 3.86/2.02 ! [S7: ( list @ char ) > int] : ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ skip @ S7 ) @ S7 ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_38_prod_Oinject,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y2: B] :
% 3.86/2.02 ( ( ( product_Pair @ A @ B @ X1 @ X2 )
% 3.86/2.02 = ( product_Pair @ A @ B @ Y1 @ Y2 ) )
% 3.86/2.02 = ( ( X1 = Y1 )
% 3.86/2.02 & ( X2 = Y2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_39_old_Oprod_Oinject,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 3.86/2.02 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 3.86/2.02 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 3.86/2.02 = ( ( A2 = A3 )
% 3.86/2.02 & ( B2 = B3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_40_sim__sym,axiom,
% 3.86/2.02 ! [C2: com,C3: com] :
% 3.86/2.02 ( ( ! [S: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S ) @ T5 ) ) )
% 3.86/2.02 = ( ! [S: ( list @ char ) > int,T5: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S ) @ T5 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_41_sim__refl,axiom,
% 3.86/2.02 ! [C2: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_42_sim__trans,axiom,
% 3.86/2.02 ! [C2: com,C3: com,C6: com] :
% 3.86/2.02 ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T2 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 ) )
% 3.86/2.02 => ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C6 @ S3 ) @ T2 ) )
% 3.86/2.02 => ! [S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C6 @ S8 ) @ T8 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_43_old_Oprod_Oinducts,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
% 3.86/2.02 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 3.86/2.02 => ( P @ Prod ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_44_old_Oprod_Oexhaust,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
% 3.86/2.02 ~ ! [A4: A,B4: B] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( product_Pair @ A @ B @ A4 @ B4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_45_mem__Collect__eq,axiom,
% 3.86/2.02 ! [A: $tType,A2: A,P: A > $o] :
% 3.86/2.02 ( ( member @ A @ A2 @ ( collect @ A @ P ) )
% 3.86/2.02 = ( P @ A2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_46_Collect__mem__eq,axiom,
% 3.86/2.02 ! [A: $tType,A5: set @ A] :
% 3.86/2.02 ( ( collect @ A
% 3.86/2.02 @ ^ [X: A] : ( member @ A @ X @ A5 ) )
% 3.86/2.02 = A5 ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_47_Collect__cong,axiom,
% 3.86/2.02 ! [A: $tType,P: A > $o,Q: A > $o] :
% 3.86/2.02 ( ! [X3: A] :
% 3.86/2.02 ( ( P @ X3 )
% 3.86/2.02 = ( Q @ X3 ) )
% 3.86/2.02 => ( ( collect @ A @ P )
% 3.86/2.02 = ( collect @ A @ Q ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_48_ext,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,F: A > B,G: A > B] :
% 3.86/2.02 ( ! [X3: A] :
% 3.86/2.02 ( ( F @ X3 )
% 3.86/2.02 = ( G @ X3 ) )
% 3.86/2.02 => ( F = G ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_49_prod__induct7,axiom,
% 3.86/2.02 ! [G2: $tType,F6: $tType,E: $tType,D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) )] :
% 3.86/2.02 ( ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6,G3: G2] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) @ D4 @ ( product_Pair @ E @ ( product_prod @ F6 @ G2 ) @ E2 @ ( product_Pair @ F6 @ G2 @ F7 @ G3 ) ) ) ) ) ) )
% 3.86/2.02 => ( P @ X4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_50_prod__induct6,axiom,
% 3.86/2.02 ! [F6: $tType,E: $tType,D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) )] :
% 3.86/2.02 ( ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ F6 ) @ D4 @ ( product_Pair @ E @ F6 @ E2 @ F7 ) ) ) ) ) )
% 3.86/2.02 => ( P @ X4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_51_prod__induct5,axiom,
% 3.86/2.02 ! [E: $tType,D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) )] :
% 3.86/2.02 ( ! [A4: A,B4: B,C7: C,D4: D3,E2: E] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ E ) @ C7 @ ( product_Pair @ D3 @ E @ D4 @ E2 ) ) ) ) )
% 3.86/2.02 => ( P @ X4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_52_prod__induct4,axiom,
% 3.86/2.02 ! [D3: $tType,C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) )] :
% 3.86/2.02 ( ! [A4: A,B4: B,C7: C,D4: D3] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D3 ) @ B4 @ ( product_Pair @ C @ D3 @ C7 @ D4 ) ) ) )
% 3.86/2.02 => ( P @ X4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_53_prod__induct3,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,P: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X4: product_prod @ A @ ( product_prod @ B @ C )] :
% 3.86/2.02 ( ! [A4: A,B4: B,C7: C] : ( P @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C7 ) ) )
% 3.86/2.02 => ( P @ X4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_54_prod__cases7,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,D3: $tType,E: $tType,F6: $tType,G2: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) )] :
% 3.86/2.02 ~ ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6,G3: G2] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ ( product_prod @ F6 @ G2 ) ) @ D4 @ ( product_Pair @ E @ ( product_prod @ F6 @ G2 ) @ E2 @ ( product_Pair @ F6 @ G2 @ F7 @ G3 ) ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_55_prod__cases6,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,D3: $tType,E: $tType,F6: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) )] :
% 3.86/2.02 ~ ! [A4: A,B4: B,C7: C,D4: D3,E2: E,F7: F6] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ ( product_prod @ E @ F6 ) ) @ C7 @ ( product_Pair @ D3 @ ( product_prod @ E @ F6 ) @ D4 @ ( product_Pair @ E @ F6 @ E2 @ F7 ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_56_prod__cases5,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,D3: $tType,E: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) )] :
% 3.86/2.02 ~ ! [A4: A,B4: B,C7: C,D4: D3,E2: E] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D3 @ E ) ) @ B4 @ ( product_Pair @ C @ ( product_prod @ D3 @ E ) @ C7 @ ( product_Pair @ D3 @ E @ D4 @ E2 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_57_prod__cases4,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,D3: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) )] :
% 3.86/2.02 ~ ! [A4: A,B4: B,C7: C,D4: D3] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D3 ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D3 ) @ B4 @ ( product_Pair @ C @ D3 @ C7 @ D4 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_58_prod__cases3,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
% 3.86/2.02 ~ ! [A4: A,B4: B,C7: C] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B4 @ C7 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_59_Pair__inject,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,A2: A,B2: B,A3: A,B3: B] :
% 3.86/2.02 ( ( ( product_Pair @ A @ B @ A2 @ B2 )
% 3.86/2.02 = ( product_Pair @ A @ B @ A3 @ B3 ) )
% 3.86/2.02 => ~ ( ( A2 = A3 )
% 3.86/2.02 => ( B2 != B3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_60_prod__cases,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,P: ( product_prod @ A @ B ) > $o,P4: product_prod @ A @ B] :
% 3.86/2.02 ( ! [A4: A,B4: B] : ( P @ ( product_Pair @ A @ B @ A4 @ B4 ) )
% 3.86/2.02 => ( P @ P4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_61_surj__pair,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,P4: product_prod @ A @ B] :
% 3.86/2.02 ? [X3: A,Y3: B] :
% 3.86/2.02 ( P4
% 3.86/2.02 = ( product_Pair @ A @ B @ X3 @ Y3 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_62_big__step__determ,axiom,
% 3.86/2.02 ! [C2: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int,U: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S7 ) @ T7 )
% 3.86/2.02 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S7 ) @ U )
% 3.86/2.02 => ( U = T7 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_63_old_Oprod_Orec,axiom,
% 3.86/2.02 ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A2: A,B2: B] :
% 3.86/2.02 ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 3.86/2.02 = ( F1 @ A2 @ B2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_64_internal__case__prod__conv,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,C: $tType,C2: B > C > A,A2: B,B2: C] :
% 3.86/2.02 ( ( produc2004651681e_prod @ B @ C @ A @ C2 @ ( product_Pair @ B @ C @ A2 @ B2 ) )
% 3.86/2.02 = ( C2 @ A2 @ B2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_65_ssubst__Pair__rhs,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,R2: A,S7: B,R: set @ ( product_prod @ A @ B ),S6: B] :
% 3.86/2.02 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S7 ) @ R )
% 3.86/2.02 => ( ( S6 = S7 )
% 3.86/2.02 => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S6 ) @ R ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_66_curry__conv,axiom,
% 3.86/2.02 ! [A: $tType,C: $tType,B: $tType] :
% 3.86/2.02 ( ( product_curry @ B @ C @ A )
% 3.86/2.02 = ( ^ [F8: ( product_prod @ B @ C ) > A,A6: B,B5: C] : ( F8 @ ( product_Pair @ B @ C @ A6 @ B5 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_67_commute__if,axiom,
% 3.86/2.02 ! [B1: bexp,B22: bexp,C11: com,C12: com,C22: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B1 @ ( if @ B22 @ C11 @ C12 ) @ C22 ) @ S8 ) @ T8 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B22 @ ( if @ B1 @ C11 @ C22 ) @ ( if @ B1 @ C12 @ C22 ) ) @ S8 ) @ T8 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_68_triv__if,axiom,
% 3.86/2.02 ! [B2: bexp,C2: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C2 @ C2 ) @ S8 ) @ T8 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T8 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_69_curryI,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
% 3.86/2.02 ( ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 3.86/2.02 => ( product_curry @ A @ B @ $o @ F @ A2 @ B2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_70_while__unfold,axiom,
% 3.86/2.02 ! [B2: bexp,C2: com,S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S8 ) @ T8 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ ( seq @ C2 @ ( while @ B2 @ C2 ) ) @ skip ) @ S8 ) @ T8 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_71_com_Oinject_I4_J,axiom,
% 3.86/2.02 ! [X51: bexp,X52: com,Y51: bexp,Y52: com] :
% 3.86/2.02 ( ( ( while @ X51 @ X52 )
% 3.86/2.02 = ( while @ Y51 @ Y52 ) )
% 3.86/2.02 = ( ( X51 = Y51 )
% 3.86/2.02 & ( X52 = Y52 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_72_com_Oinject_I3_J,axiom,
% 3.86/2.02 ! [X41: bexp,X42: com,X43: com,Y41: bexp,Y42: com,Y43: com] :
% 3.86/2.02 ( ( ( if @ X41 @ X42 @ X43 )
% 3.86/2.02 = ( if @ Y41 @ Y42 @ Y43 ) )
% 3.86/2.02 = ( ( X41 = Y41 )
% 3.86/2.02 & ( X42 = Y42 )
% 3.86/2.02 & ( X43 = Y43 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_73_com_Odistinct_I19_J,axiom,
% 3.86/2.02 ! [X41: bexp,X42: com,X43: com,X51: bexp,X52: com] :
% 3.86/2.02 ( ( if @ X41 @ X42 @ X43 )
% 3.86/2.02 != ( while @ X51 @ X52 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_74_com_Odistinct_I7_J,axiom,
% 3.86/2.02 ! [X51: bexp,X52: com] :
% 3.86/2.02 ( skip
% 3.86/2.02 != ( while @ X51 @ X52 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_75_com_Odistinct_I17_J,axiom,
% 3.86/2.02 ! [X31: com,X32: com,X51: bexp,X52: com] :
% 3.86/2.02 ( ( seq @ X31 @ X32 )
% 3.86/2.02 != ( while @ X51 @ X52 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_76_com_Odistinct_I13_J,axiom,
% 3.86/2.02 ! [X21: list @ char,X22: aexp,X51: bexp,X52: com] :
% 3.86/2.02 ( ( assign @ X21 @ X22 )
% 3.86/2.02 != ( while @ X51 @ X52 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_77_com_Osimps_I29_J,axiom,
% 3.86/2.02 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X51: bexp,X52: com] :
% 3.86/2.02 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( while @ X51 @ X52 ) )
% 3.86/2.02 = ( F5 @ X51 @ X52 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_78_com_Osimps_I34_J,axiom,
% 3.86/2.02 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X51: bexp,X52: com] :
% 3.86/2.02 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( while @ X51 @ X52 ) )
% 3.86/2.02 = ( F5 @ X51 @ X52 @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X52 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_79_com_Odistinct_I5_J,axiom,
% 3.86/2.02 ! [X41: bexp,X42: com,X43: com] :
% 3.86/2.02 ( skip
% 3.86/2.02 != ( if @ X41 @ X42 @ X43 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_80_com_Odistinct_I15_J,axiom,
% 3.86/2.02 ! [X31: com,X32: com,X41: bexp,X42: com,X43: com] :
% 3.86/2.02 ( ( seq @ X31 @ X32 )
% 3.86/2.02 != ( if @ X41 @ X42 @ X43 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_81_com_Odistinct_I11_J,axiom,
% 3.86/2.02 ! [X21: list @ char,X22: aexp,X41: bexp,X42: com,X43: com] :
% 3.86/2.02 ( ( assign @ X21 @ X22 )
% 3.86/2.02 != ( if @ X41 @ X42 @ X43 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_82_com_Osimps_I28_J,axiom,
% 3.86/2.02 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,X41: bexp,X42: com,X43: com] :
% 3.86/2.02 ( ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( if @ X41 @ X42 @ X43 ) )
% 3.86/2.02 = ( F4 @ X41 @ X42 @ X43 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_83_curryD,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
% 3.86/2.02 ( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
% 3.86/2.02 => ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_84_curryE,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: ( product_prod @ A @ B ) > $o,A2: A,B2: B] :
% 3.86/2.02 ( ( product_curry @ A @ B @ $o @ F @ A2 @ B2 )
% 3.86/2.02 => ( F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_85_com_Osimps_I33_J,axiom,
% 3.86/2.02 ! [A: $tType,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A > A > A,F4: bexp > com > com > A > A > A,F5: bexp > com > A > A,X41: bexp,X42: com,X43: com] :
% 3.86/2.02 ( ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ ( if @ X41 @ X42 @ X43 ) )
% 3.86/2.02 = ( F4 @ X41 @ X42 @ X43 @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X42 ) @ ( rec_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ X43 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_86_com_Oinduct,axiom,
% 3.86/2.02 ! [P: com > $o,Com: com] :
% 3.86/2.02 ( ( P @ skip )
% 3.86/2.02 => ( ! [X12: list @ char,X23: aexp] : ( P @ ( assign @ X12 @ X23 ) )
% 3.86/2.02 => ( ! [X12: com,X23: com] :
% 3.86/2.02 ( ( P @ X12 )
% 3.86/2.02 => ( ( P @ X23 )
% 3.86/2.02 => ( P @ ( seq @ X12 @ X23 ) ) ) )
% 3.86/2.02 => ( ! [X12: bexp,X23: com,X33: com] :
% 3.86/2.02 ( ( P @ X23 )
% 3.86/2.02 => ( ( P @ X33 )
% 3.86/2.02 => ( P @ ( if @ X12 @ X23 @ X33 ) ) ) )
% 3.86/2.02 => ( ! [X12: bexp,X23: com] :
% 3.86/2.02 ( ( P @ X23 )
% 3.86/2.02 => ( P @ ( while @ X12 @ X23 ) ) )
% 3.86/2.02 => ( P @ Com ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_87_com_Oexhaust,axiom,
% 3.86/2.02 ! [Y: com] :
% 3.86/2.02 ( ( Y != skip )
% 3.86/2.02 => ( ! [X212: list @ char,X222: aexp] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( assign @ X212 @ X222 ) )
% 3.86/2.02 => ( ! [X312: com,X322: com] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( seq @ X312 @ X322 ) )
% 3.86/2.02 => ( ! [X412: bexp,X422: com,X432: com] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( if @ X412 @ X422 @ X432 ) )
% 3.86/2.02 => ~ ! [X512: bexp,X522: com] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( while @ X512 @ X522 ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_88_sim__while__cong,axiom,
% 3.86/2.02 ! [C2: com,C3: com,B2: bexp] :
% 3.86/2.02 ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T2 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 ) )
% 3.86/2.02 => ! [S8: ( list @ char ) > int,T8: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S8 ) @ T8 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S8 ) @ T8 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_89_sim__while__cong__aux,axiom,
% 3.86/2.02 ! [B2: bexp,C2: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int,C3: com] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S7 ) @ T7 )
% 3.86/2.02 => ( ! [S3: ( list @ char ) > int,T2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S3 ) @ T2 )
% 3.86/2.02 = ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S3 ) @ T2 ) )
% 3.86/2.02 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C3 ) @ S7 ) @ T7 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_90_IfE,axiom,
% 3.86/2.02 ! [B2: bexp,C1: com,C22: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C1 @ C22 ) @ S7 ) @ T7 )
% 3.86/2.02 => ( ( ( bval @ B2 @ S7 )
% 3.86/2.02 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S7 ) @ T7 ) )
% 3.86/2.02 => ~ ( ~ ( bval @ B2 @ S7 )
% 3.86/2.02 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S7 ) @ T7 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_91_IfTrue,axiom,
% 3.86/2.02 ! [B2: bexp,S7: ( list @ char ) > int,C_1: com,T7: ( list @ char ) > int,C_2: com] :
% 3.86/2.02 ( ( bval @ B2 @ S7 )
% 3.86/2.02 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_1 @ S7 ) @ T7 )
% 3.86/2.02 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S7 ) @ T7 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_92_IfFalse,axiom,
% 3.86/2.02 ! [B2: bexp,S7: ( list @ char ) > int,C_2: com,T7: ( list @ char ) > int,C_1: com] :
% 3.86/2.02 ( ~ ( bval @ B2 @ S7 )
% 3.86/2.02 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C_2 @ S7 ) @ T7 )
% 3.86/2.02 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( if @ B2 @ C_1 @ C_2 ) @ S7 ) @ T7 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_93_WhileE,axiom,
% 3.86/2.02 ! [B2: bexp,C2: com,S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S7 ) @ T7 )
% 3.86/2.02 => ( ( ( T7 = S7 )
% 3.86/2.02 => ( bval @ B2 @ S7 ) )
% 3.86/2.02 => ~ ( ( bval @ B2 @ S7 )
% 3.86/2.02 => ! [S_2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S7 ) @ S_2 )
% 3.86/2.02 => ~ ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_2 ) @ T7 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_94_WhileTrue,axiom,
% 3.86/2.02 ! [B2: bexp,S_1: ( list @ char ) > int,C2: com,S_22: ( list @ char ) > int,S_3: ( list @ char ) > int] :
% 3.86/2.02 ( ( bval @ B2 @ S_1 )
% 3.86/2.02 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S_1 ) @ S_22 )
% 3.86/2.02 => ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_22 ) @ S_3 )
% 3.86/2.02 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S_1 ) @ S_3 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_95_WhileFalse,axiom,
% 3.86/2.02 ! [B2: bexp,S7: ( list @ char ) > int,C2: com] :
% 3.86/2.02 ( ~ ( bval @ B2 @ S7 )
% 3.86/2.02 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S7 ) @ S7 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_96_swap__simp,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,X4: B,Y: A] :
% 3.86/2.02 ( ( product_swap @ B @ A @ ( product_Pair @ B @ A @ X4 @ Y ) )
% 3.86/2.02 = ( product_Pair @ A @ B @ Y @ X4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_97_swap__swap,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,P4: product_prod @ A @ B] :
% 3.86/2.02 ( ( product_swap @ B @ A @ ( product_swap @ A @ B @ P4 ) )
% 3.86/2.02 = P4 ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_98_pair__in__swap__image,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,Y: A,X4: B,A5: set @ ( product_prod @ B @ A )] :
% 3.86/2.02 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ Y @ X4 ) @ ( image @ ( product_prod @ B @ A ) @ ( product_prod @ A @ B ) @ ( product_swap @ B @ A ) @ A5 ) )
% 3.86/2.02 = ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ X4 @ Y ) @ A5 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_99_internal__case__prod__def,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType] :
% 3.86/2.02 ( ( produc2004651681e_prod @ A @ B @ C )
% 3.86/2.02 = ( product_case_prod @ A @ B @ C ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_100_Assign__complete,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,X1: list @ char,X2: aexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,T7: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 3.86/2.02 ( ( relati167478067_valid @ P @ ( assign @ X1 @ X2 ) @ C3 @ Q )
% 3.86/2.02 => ( ( Q @ T7 @ T4 )
% 3.86/2.02 => ? [S4: ( list @ char ) > int] :
% 3.86/2.02 ( ? [V: int] :
% 3.86/2.02 ( ( P @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X1 @ V ) @ S4 )
% 3.86/2.02 & ( ( T7 @ X1 )
% 3.86/2.02 = ( aval @ X2 @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X1 @ V ) ) ) )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S4 ) @ T4 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_101_While__True__ir__valid,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_102_While__backwards__frontier__ir__valid_H,axiom,
% 3.86/2.02 ! [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,T7: ( list @ char ) > int,T4: ( list @ char ) > int] :
% 3.86/2.02 ( ! [N: nat,T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ ( plus_plus @ nat @ K @ ( suc @ N ) ) @ T2 @ T3 )
% 3.86/2.02 => ? [S8: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ ( plus_plus @ nat @ K @ N ) @ S8 @ T3 )
% 3.86/2.02 & ( bval @ B2 @ S8 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S8 ) @ T2 ) ) )
% 3.86/2.02 => ( ! [T2: ( list @ char ) > int,T3: ( list @ char ) > int] :
% 3.86/2.02 ( ( Q @ T2 @ T3 )
% 3.86/2.02 => ? [S8: ( list @ char ) > int,S5: ( list @ char ) > int] :
% 3.86/2.02 ( ? [N2: nat] : ( P @ ( plus_plus @ nat @ K @ N2 ) @ S8 @ S5 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S8 ) @ T2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S5 ) @ T3 ) ) )
% 3.86/2.02 => ( ( Q @ T7 @ T4 )
% 3.86/2.02 => ? [S3: ( list @ char ) > int,S4: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ K @ S3 @ S4 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ S3 ) @ T7 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S4 ) @ T4 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_103_mem__case__prodI2,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,P4: product_prod @ A @ B,Z: C,C2: A > B > ( set @ C )] :
% 3.86/2.02 ( ! [A4: A,B4: B] :
% 3.86/2.02 ( ( P4
% 3.86/2.02 = ( product_Pair @ A @ B @ A4 @ B4 ) )
% 3.86/2.02 => ( member @ C @ Z @ ( C2 @ A4 @ B4 ) ) )
% 3.86/2.02 => ( member @ C @ Z @ ( product_case_prod @ A @ B @ ( set @ C ) @ C2 @ P4 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_104_mem__case__prodI,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,Z: A,C2: B > C > ( set @ A ),A2: B,B2: C] :
% 3.86/2.02 ( ( member @ A @ Z @ ( C2 @ A2 @ B2 ) )
% 3.86/2.02 => ( member @ A @ Z @ ( product_case_prod @ B @ C @ ( set @ A ) @ C2 @ ( product_Pair @ B @ C @ A2 @ B2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_105_case__prodI2_H,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,P4: product_prod @ A @ B,C2: A > B > C > $o,X4: C] :
% 3.86/2.02 ( ! [A4: A,B4: B] :
% 3.86/2.02 ( ( ( product_Pair @ A @ B @ A4 @ B4 )
% 3.86/2.02 = P4 )
% 3.86/2.02 => ( C2 @ A4 @ B4 @ X4 ) )
% 3.86/2.02 => ( product_case_prod @ A @ B @ ( C > $o ) @ C2 @ P4 @ X4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_106_case__prodI2,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,P4: product_prod @ A @ B,C2: A > B > $o] :
% 3.86/2.02 ( ! [A4: A,B4: B] :
% 3.86/2.02 ( ( P4
% 3.86/2.02 = ( product_Pair @ A @ B @ A4 @ B4 ) )
% 3.86/2.02 => ( C2 @ A4 @ B4 ) )
% 3.86/2.02 => ( product_case_prod @ A @ B @ $o @ C2 @ P4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_107_case__prodI,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: A > B > $o,A2: A,B2: B] :
% 3.86/2.02 ( ( F @ A2 @ B2 )
% 3.86/2.02 => ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A2 @ B2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_108_disj__ir__valid,axiom,
% 3.86/2.02 ! [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] :
% 3.86/2.02 ( ( relati167478067_valid @ P_1 @ C2 @ C3 @ Q_1 )
% 3.86/2.02 => ( ( relati167478067_valid @ P_2 @ C2 @ C3 @ Q_2 )
% 3.86/2.02 => ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P_1 @ S @ S2 )
% 3.86/2.02 | ( P_2 @ S @ S2 ) )
% 3.86/2.02 @ C2
% 3.86/2.02 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( Q_1 @ T5 @ T6 )
% 3.86/2.02 | ( Q_2 @ T5 @ T6 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_109_case__prod__conv,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,C: $tType,F: B > C > A,A2: B,B2: C] :
% 3.86/2.02 ( ( product_case_prod @ B @ C @ A @ F @ ( product_Pair @ B @ C @ A2 @ B2 ) )
% 3.86/2.02 = ( F @ A2 @ B2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_110_curry__case__prod,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,F: A > B > C] :
% 3.86/2.02 ( ( product_curry @ A @ B @ C @ ( product_case_prod @ A @ B @ C @ F ) )
% 3.86/2.02 = F ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_111_case__prod__curry,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,F: ( product_prod @ A @ B ) > C] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ C @ ( product_curry @ A @ B @ C @ F ) )
% 3.86/2.02 = F ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_112_case__swap,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,F: C > B > A,P4: product_prod @ C @ B] :
% 3.86/2.02 ( ( product_case_prod @ B @ C @ A
% 3.86/2.02 @ ^ [Y4: B,X: C] : ( F @ X @ Y4 )
% 3.86/2.02 @ ( product_swap @ C @ B @ P4 ) )
% 3.86/2.02 = ( product_case_prod @ C @ B @ A @ F @ P4 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_113_pair__imageI,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,A2: A,B2: B,A5: set @ ( product_prod @ A @ B ),F: A > B > C] :
% 3.86/2.02 ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A2 @ B2 ) @ A5 )
% 3.86/2.02 => ( member @ C @ ( F @ A2 @ B2 ) @ ( image @ ( product_prod @ A @ B ) @ C @ ( product_case_prod @ A @ B @ C @ F ) @ A5 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_114_If__True__ir__valid,axiom,
% 3.86/2.02 ! [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] :
% 3.86/2.02 ( ( relati167478067_valid
% 3.86/2.02 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ A6 @ C4 )
% 3.86/2.02 & ( bval @ B2 @ A6 ) )
% 3.86/2.02 @ C_1
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_115_If__False__ir__valid,axiom,
% 3.86/2.02 ! [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] :
% 3.86/2.02 ( ( relati167478067_valid
% 3.86/2.02 @ ^ [A6: ( list @ char ) > int,C4: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ A6 @ C4 )
% 3.86/2.02 & ~ ( bval @ B2 @ A6 ) )
% 3.86/2.02 @ C_2
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_116_While__False__ir__valid,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 3.86/2.02 ( ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ~ ( bval @ B2 @ S ) )
% 3.86/2.02 @ skip
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_117_Assign__blah,axiom,
% 3.86/2.02 ! [T7: ( list @ char ) > int,X4: list @ char,E3: aexp,V2: int] :
% 3.86/2.02 ( ( ( T7 @ X4 )
% 3.86/2.02 = ( aval @ E3 @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X4 @ V2 ) ) )
% 3.86/2.02 => ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ E3 ) @ ( fun_upd @ ( list @ char ) @ int @ T7 @ X4 @ V2 ) ) @ T7 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_118_curry__def,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType] :
% 3.86/2.02 ( ( product_curry @ A @ B @ C )
% 3.86/2.02 = ( ^ [C4: ( product_prod @ A @ B ) > C,X: A,Y4: B] : ( C4 @ ( product_Pair @ A @ B @ X @ Y4 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_119_prod_Ocase__distrib,axiom,
% 3.86/2.02 ! [C: $tType,D3: $tType,B: $tType,A: $tType,H: C > D3,F: A > B > C,Prod: product_prod @ A @ B] :
% 3.86/2.02 ( ( H @ ( product_case_prod @ A @ B @ C @ F @ Prod ) )
% 3.86/2.02 = ( product_case_prod @ A @ B @ D3
% 3.86/2.02 @ ^ [X13: A,X24: B] : ( H @ ( F @ X13 @ X24 ) )
% 3.86/2.02 @ Prod ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_120_ir__disj,axiom,
% 3.86/2.02 ! [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] :
% 3.86/2.02 ( ( relati1493963588_hoare @ P_1 @ C2 @ C3 @ Q_1 )
% 3.86/2.02 => ( ( relati1493963588_hoare @ P_2 @ C2 @ C3 @ Q_2 )
% 3.86/2.02 => ( relati1493963588_hoare
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P_1 @ S @ S2 )
% 3.86/2.02 | ( P_2 @ S @ S2 ) )
% 3.86/2.02 @ C2
% 3.86/2.02 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( Q_1 @ T5 @ T6 )
% 3.86/2.02 | ( Q_2 @ T5 @ T6 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_121_com_Ocase__distrib,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,H: A > B,F1: A,F2: ( list @ char ) > aexp > A,F3: com > com > A,F4: bexp > com > com > A,F5: bexp > com > A,Com: com] :
% 3.86/2.02 ( ( H @ ( case_com @ A @ F1 @ F2 @ F3 @ F4 @ F5 @ Com ) )
% 3.86/2.02 = ( case_com @ B @ ( H @ F1 )
% 3.86/2.02 @ ^ [X13: list @ char,X24: aexp] : ( H @ ( F2 @ X13 @ X24 ) )
% 3.86/2.02 @ ^ [X13: com,X24: com] : ( H @ ( F3 @ X13 @ X24 ) )
% 3.86/2.02 @ ^ [X13: bexp,X24: com,X34: com] : ( H @ ( F4 @ X13 @ X24 @ X34 ) )
% 3.86/2.02 @ ^ [X13: bexp,X24: com] : ( H @ ( F5 @ X13 @ X24 ) )
% 3.86/2.02 @ Com ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_122_assign__upd__blah,axiom,
% 3.86/2.02 ! [X1: list @ char,S7: ( list @ char ) > int,X2: aexp] :
% 3.86/2.02 ( ( ^ [A6: list @ char] : ( if2 @ int @ ( A6 = X1 ) @ ( S7 @ X1 ) @ ( fun_upd @ ( list @ char ) @ int @ S7 @ X1 @ ( aval @ X2 @ S7 ) @ A6 ) ) )
% 3.86/2.02 = S7 ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_123_flip__def,axiom,
% 3.86/2.02 ( relati1716060877e_flip
% 3.86/2.02 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S: ( list @ char ) > int,S2: ( list @ char ) > int] : ( P2 @ S2 @ S ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_124_curry__K,axiom,
% 3.86/2.02 ! [B: $tType,C: $tType,A: $tType,C2: C] :
% 3.86/2.02 ( ( product_curry @ A @ B @ C
% 3.86/2.02 @ ^ [X: product_prod @ A @ B] : C2 )
% 3.86/2.02 = ( ^ [X: A,Y4: B] : C2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_125_cond__case__prod__eta,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,F: A > B > C,G: ( product_prod @ A @ B ) > C] :
% 3.86/2.02 ( ! [X3: A,Y3: B] :
% 3.86/2.02 ( ( F @ X3 @ Y3 )
% 3.86/2.02 = ( G @ ( product_Pair @ A @ B @ X3 @ Y3 ) ) )
% 3.86/2.02 => ( ( product_case_prod @ A @ B @ C @ F )
% 3.86/2.02 = G ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_126_case__prod__eta,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,F: ( product_prod @ A @ B ) > C] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ C
% 3.86/2.02 @ ^ [X: A,Y4: B] : ( F @ ( product_Pair @ A @ B @ X @ Y4 ) ) )
% 3.86/2.02 = F ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_127_case__prodE2,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,C: $tType,Q: A > $o,P: B > C > A,Z: product_prod @ B @ C] :
% 3.86/2.02 ( ( Q @ ( product_case_prod @ B @ C @ A @ P @ Z ) )
% 3.86/2.02 => ~ ! [X3: B,Y3: C] :
% 3.86/2.02 ( ( Z
% 3.86/2.02 = ( product_Pair @ B @ C @ X3 @ Y3 ) )
% 3.86/2.02 => ~ ( Q @ ( P @ X3 @ Y3 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_128_case__prodE_H,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,C: $tType,C2: A > B > C > $o,P4: product_prod @ A @ B,Z: C] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ ( C > $o ) @ C2 @ P4 @ Z )
% 3.86/2.02 => ~ ! [X3: A,Y3: B] :
% 3.86/2.02 ( ( P4
% 3.86/2.02 = ( product_Pair @ A @ B @ X3 @ Y3 ) )
% 3.86/2.02 => ~ ( C2 @ X3 @ Y3 @ Z ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_129_case__prodD_H,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,C: $tType,R: A > B > C > $o,A2: A,B2: B,C2: C] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ ( C > $o ) @ R @ ( product_Pair @ A @ B @ A2 @ B2 ) @ C2 )
% 3.86/2.02 => ( R @ A2 @ B2 @ C2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_130_case__prodE,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C2: A > B > $o,P4: product_prod @ A @ B] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ $o @ C2 @ P4 )
% 3.86/2.02 => ~ ! [X3: A,Y3: B] :
% 3.86/2.02 ( ( P4
% 3.86/2.02 = ( product_Pair @ A @ B @ X3 @ Y3 ) )
% 3.86/2.02 => ~ ( C2 @ X3 @ Y3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_131_case__prodD,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: A > B > $o,A2: A,B2: B] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ $o @ F @ ( product_Pair @ A @ B @ A2 @ B2 ) )
% 3.86/2.02 => ( F @ A2 @ B2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_132_mem__case__prodE,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,C: $tType,Z: A,C2: B > C > ( set @ A ),P4: product_prod @ B @ C] :
% 3.86/2.02 ( ( member @ A @ Z @ ( product_case_prod @ B @ C @ ( set @ A ) @ C2 @ P4 ) )
% 3.86/2.02 => ~ ! [X3: B,Y3: C] :
% 3.86/2.02 ( ( P4
% 3.86/2.02 = ( product_Pair @ B @ C @ X3 @ Y3 ) )
% 3.86/2.02 => ~ ( member @ A @ Z @ ( C2 @ X3 @ Y3 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_133_old_Oprod_Ocase,axiom,
% 3.86/2.02 ! [A: $tType,C: $tType,B: $tType,F: A > B > C,X1: A,X2: B] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ C @ F @ ( product_Pair @ A @ B @ X1 @ X2 ) )
% 3.86/2.02 = ( F @ X1 @ X2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_134_ir__If__False,axiom,
% 3.86/2.02 ! [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] :
% 3.86/2.02 ( ( relati1493963588_hoare
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ~ ( bval @ B2 @ S ) )
% 3.86/2.02 @ C_2
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_135_ir__If__True,axiom,
% 3.86/2.02 ! [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] :
% 3.86/2.02 ( ( relati1493963588_hoare
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ C_1
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati1493963588_hoare @ P @ ( if @ B2 @ C_1 @ C_2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_136_AssignE,axiom,
% 3.86/2.02 ! [X4: list @ char,A2: aexp,S7: ( list @ char ) > int,T7: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ A2 ) @ S7 ) @ T7 )
% 3.86/2.02 => ( T7
% 3.86/2.02 = ( fun_upd @ ( list @ char ) @ int @ S7 @ X4 @ ( aval @ A2 @ S7 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_137_assign__simp,axiom,
% 3.86/2.02 ! [X4: list @ char,A2: aexp,S7: ( list @ char ) > int,S6: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ A2 ) @ S7 ) @ S6 )
% 3.86/2.02 = ( S6
% 3.86/2.02 = ( fun_upd @ ( list @ char ) @ int @ S7 @ X4 @ ( aval @ A2 @ S7 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_138_Assign,axiom,
% 3.86/2.02 ! [X4: list @ char,A2: aexp,S7: ( list @ char ) > int] : ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( assign @ X4 @ A2 ) @ S7 ) @ ( fun_upd @ ( list @ char ) @ int @ S7 @ X4 @ ( aval @ A2 @ S7 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_139_ir__While__False,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com] :
% 3.86/2.02 ( ( relati1493963588_hoare
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ~ ( bval @ B2 @ S ) )
% 3.86/2.02 @ skip
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_140_ir__While__True,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati1493963588_hoare
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ ( seq @ C2 @ ( while @ B2 @ C2 ) )
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati1493963588_hoare @ P @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_141_add__Suc__right,axiom,
% 3.86/2.02 ! [M: nat,N3: nat] :
% 3.86/2.02 ( ( plus_plus @ nat @ M @ ( suc @ N3 ) )
% 3.86/2.02 = ( suc @ ( plus_plus @ nat @ M @ N3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_142_image__ident,axiom,
% 3.86/2.02 ! [A: $tType,Y5: set @ A] :
% 3.86/2.02 ( ( image @ A @ A
% 3.86/2.02 @ ^ [X: A] : X
% 3.86/2.02 @ Y5 )
% 3.86/2.02 = Y5 ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_143_fun__upd__upd,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: A > B,X4: A,Y: B,Z: B] :
% 3.86/2.02 ( ( fun_upd @ A @ B @ ( fun_upd @ A @ B @ F @ X4 @ Y ) @ X4 @ Z )
% 3.86/2.02 = ( fun_upd @ A @ B @ F @ X4 @ Z ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_144_fun__upd__triv,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,F: A > B,X4: A] :
% 3.86/2.02 ( ( fun_upd @ A @ B @ F @ X4 @ ( F @ X4 ) )
% 3.86/2.02 = F ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_145_fun__upd__apply,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType] :
% 3.86/2.02 ( ( fun_upd @ B @ A )
% 3.86/2.02 = ( ^ [F8: B > A,X: B,Y4: A,Z2: B] : ( if2 @ A @ ( Z2 = X ) @ Y4 @ ( F8 @ Z2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_146_image__eqI,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,B2: A,F: B > A,X4: B,A5: set @ B] :
% 3.86/2.02 ( ( B2
% 3.86/2.02 = ( F @ X4 ) )
% 3.86/2.02 => ( ( member @ B @ X4 @ A5 )
% 3.86/2.02 => ( member @ A @ B2 @ ( image @ B @ A @ F @ A5 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_147_old_Onat_Oinject,axiom,
% 3.86/2.02 ! [Nat: nat,Nat2: nat] :
% 3.86/2.02 ( ( ( suc @ Nat )
% 3.86/2.02 = ( suc @ Nat2 ) )
% 3.86/2.02 = ( Nat = Nat2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_148_nat_Oinject,axiom,
% 3.86/2.02 ! [X2: nat,Y2: nat] :
% 3.86/2.02 ( ( ( suc @ X2 )
% 3.86/2.02 = ( suc @ Y2 ) )
% 3.86/2.02 = ( X2 = Y2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_149_split__part,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,P: $o,Q: A > B > $o] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ $o
% 3.86/2.02 @ ^ [A6: A,B5: B] :
% 3.86/2.02 ( P
% 3.86/2.02 & ( Q @ A6 @ B5 ) ) )
% 3.86/2.02 = ( ^ [Ab: product_prod @ A @ B] :
% 3.86/2.02 ( P
% 3.86/2.02 & ( product_case_prod @ A @ B @ $o @ Q @ Ab ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_150_prod_Odisc__eq__case,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,Prod: product_prod @ A @ B] :
% 3.86/2.02 ( product_case_prod @ A @ B @ $o
% 3.86/2.02 @ ^ [Uu: A,Uv: B] : $true
% 3.86/2.02 @ Prod ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_151_rev__image__eqI,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,X4: A,A5: set @ A,B2: B,F: A > B] :
% 3.86/2.02 ( ( member @ A @ X4 @ A5 )
% 3.86/2.02 => ( ( B2
% 3.86/2.02 = ( F @ X4 ) )
% 3.86/2.02 => ( member @ B @ B2 @ ( image @ A @ B @ F @ A5 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_152_ball__imageD,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: B > A,A5: set @ B,P: A > $o] :
% 3.86/2.02 ( ! [X3: A] :
% 3.86/2.02 ( ( member @ A @ X3 @ ( image @ B @ A @ F @ A5 ) )
% 3.86/2.02 => ( P @ X3 ) )
% 3.86/2.02 => ! [X5: B] :
% 3.86/2.02 ( ( member @ B @ X5 @ A5 )
% 3.86/2.02 => ( P @ ( F @ X5 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_153_image__cong,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,M2: set @ A,N4: set @ A,F: A > B,G: A > B] :
% 3.86/2.02 ( ( M2 = N4 )
% 3.86/2.02 => ( ! [X3: A] :
% 3.86/2.02 ( ( member @ A @ X3 @ N4 )
% 3.86/2.02 => ( ( F @ X3 )
% 3.86/2.02 = ( G @ X3 ) ) )
% 3.86/2.02 => ( ( image @ A @ B @ F @ M2 )
% 3.86/2.02 = ( image @ A @ B @ G @ N4 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_154_bex__imageD,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: B > A,A5: set @ B,P: A > $o] :
% 3.86/2.02 ( ? [X5: A] :
% 3.86/2.02 ( ( member @ A @ X5 @ ( image @ B @ A @ F @ A5 ) )
% 3.86/2.02 & ( P @ X5 ) )
% 3.86/2.02 => ? [X3: B] :
% 3.86/2.02 ( ( member @ B @ X3 @ A5 )
% 3.86/2.02 & ( P @ ( F @ X3 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_155_image__iff,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,Z: A,F: B > A,A5: set @ B] :
% 3.86/2.02 ( ( member @ A @ Z @ ( image @ B @ A @ F @ A5 ) )
% 3.86/2.02 = ( ? [X: B] :
% 3.86/2.02 ( ( member @ B @ X @ A5 )
% 3.86/2.02 & ( Z
% 3.86/2.02 = ( F @ X ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_156_imageI,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,X4: A,A5: set @ A,F: A > B] :
% 3.86/2.02 ( ( member @ A @ X4 @ A5 )
% 3.86/2.02 => ( member @ B @ ( F @ X4 ) @ ( image @ A @ B @ F @ A5 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_157_n__not__Suc__n,axiom,
% 3.86/2.02 ! [N3: nat] :
% 3.86/2.02 ( N3
% 3.86/2.02 != ( suc @ N3 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_158_Suc__inject,axiom,
% 3.86/2.02 ! [X4: nat,Y: nat] :
% 3.86/2.02 ( ( ( suc @ X4 )
% 3.86/2.02 = ( suc @ Y ) )
% 3.86/2.02 => ( X4 = Y ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_159_fun__upd__idem__iff,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: A > B,X4: A,Y: B] :
% 3.86/2.02 ( ( ( fun_upd @ A @ B @ F @ X4 @ Y )
% 3.86/2.02 = F )
% 3.86/2.02 = ( ( F @ X4 )
% 3.86/2.02 = Y ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_160_fun__upd__twist,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,A2: A,C2: A,M: A > B,B2: B,D: B] :
% 3.86/2.02 ( ( A2 != C2 )
% 3.86/2.02 => ( ( fun_upd @ A @ B @ ( fun_upd @ A @ B @ M @ A2 @ B2 ) @ C2 @ D )
% 3.86/2.02 = ( fun_upd @ A @ B @ ( fun_upd @ A @ B @ M @ C2 @ D ) @ A2 @ B2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_161_fun__upd__other,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,Z: A,X4: A,F: A > B,Y: B] :
% 3.86/2.02 ( ( Z != X4 )
% 3.86/2.02 => ( ( fun_upd @ A @ B @ F @ X4 @ Y @ Z )
% 3.86/2.02 = ( F @ Z ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_162_fun__upd__same,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,F: B > A,X4: B,Y: A] :
% 3.86/2.02 ( ( fun_upd @ B @ A @ F @ X4 @ Y @ X4 )
% 3.86/2.02 = Y ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_163_fun__upd__idem,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: B > A,X4: B,Y: A] :
% 3.86/2.02 ( ( ( F @ X4 )
% 3.86/2.02 = Y )
% 3.86/2.02 => ( ( fun_upd @ B @ A @ F @ X4 @ Y )
% 3.86/2.02 = F ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_164_fun__upd__eqD,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: A > B,X4: A,Y: B,G: A > B,Z: B] :
% 3.86/2.02 ( ( ( fun_upd @ A @ B @ F @ X4 @ Y )
% 3.86/2.02 = ( fun_upd @ A @ B @ G @ X4 @ Z ) )
% 3.86/2.02 => ( Y = Z ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_165_fun__upd__def,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType] :
% 3.86/2.02 ( ( fun_upd @ A @ B )
% 3.86/2.02 = ( ^ [F8: A > B,A6: A,B5: B,X: A] : ( if2 @ B @ ( X = A6 ) @ B5 @ ( F8 @ X ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_166_Compr__image__eq,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: B > A,A5: set @ B,P: A > $o] :
% 3.86/2.02 ( ( collect @ A
% 3.86/2.02 @ ^ [X: A] :
% 3.86/2.02 ( ( member @ A @ X @ ( image @ B @ A @ F @ A5 ) )
% 3.86/2.02 & ( P @ X ) ) )
% 3.86/2.02 = ( image @ B @ A @ F
% 3.86/2.02 @ ( collect @ B
% 3.86/2.02 @ ^ [X: B] :
% 3.86/2.02 ( ( member @ B @ X @ A5 )
% 3.86/2.02 & ( P @ ( F @ X ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_167_image__image,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType,F: B > A,G: C > B,A5: set @ C] :
% 3.86/2.02 ( ( image @ B @ A @ F @ ( image @ C @ B @ G @ A5 ) )
% 3.86/2.02 = ( image @ C @ A
% 3.86/2.02 @ ^ [X: C] : ( F @ ( G @ X ) )
% 3.86/2.02 @ A5 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_168_imageE,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,B2: A,F: B > A,A5: set @ B] :
% 3.86/2.02 ( ( member @ A @ B2 @ ( image @ B @ A @ F @ A5 ) )
% 3.86/2.02 => ~ ! [X3: B] :
% 3.86/2.02 ( ( B2
% 3.86/2.02 = ( F @ X3 ) )
% 3.86/2.02 => ~ ( member @ B @ X3 @ A5 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_169_add__Suc,axiom,
% 3.86/2.02 ! [M: nat,N3: nat] :
% 3.86/2.02 ( ( plus_plus @ nat @ ( suc @ M ) @ N3 )
% 3.86/2.02 = ( suc @ ( plus_plus @ nat @ M @ N3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_170_nat__arith_Osuc1,axiom,
% 3.86/2.02 ! [A5: nat,K: nat,A2: nat] :
% 3.86/2.02 ( ( A5
% 3.86/2.02 = ( plus_plus @ nat @ K @ A2 ) )
% 3.86/2.02 => ( ( suc @ A5 )
% 3.86/2.02 = ( plus_plus @ nat @ K @ ( suc @ A2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_171_add__Suc__shift,axiom,
% 3.86/2.02 ! [M: nat,N3: nat] :
% 3.86/2.02 ( ( plus_plus @ nat @ ( suc @ M ) @ N3 )
% 3.86/2.02 = ( plus_plus @ nat @ M @ ( suc @ N3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_172_case__prod__app,axiom,
% 3.86/2.02 ! [A: $tType,D3: $tType,C: $tType,B: $tType] :
% 3.86/2.02 ( ( product_case_prod @ B @ C @ ( D3 > A ) )
% 3.86/2.02 = ( ^ [F8: B > C > D3 > A,X: product_prod @ B @ C,Y4: D3] :
% 3.86/2.02 ( product_case_prod @ B @ C @ A
% 3.86/2.02 @ ^ [L: B,R3: C] : ( F8 @ L @ R3 @ Y4 )
% 3.86/2.02 @ X ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_173_add__right__cancel,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel_semigroup_add @ A )
% 3.86/2.02 => ! [B2: A,A2: A,C2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ B2 @ A2 )
% 3.86/2.02 = ( plus_plus @ A @ C2 @ A2 ) )
% 3.86/2.02 = ( B2 = C2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_174_add__left__cancel,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel_semigroup_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A,C2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ A2 @ B2 )
% 3.86/2.02 = ( plus_plus @ A @ A2 @ C2 ) )
% 3.86/2.02 = ( B2 = C2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_175_ab__semigroup__add__class_Oadd__ac_I1_J,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( ab_semigroup_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A,C2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 3.86/2.02 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_176_add__mono__thms__linordered__semiring_I4_J,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( ordere779506340up_add @ A )
% 3.86/2.02 => ! [I: A,J: A,K: A,L2: A] :
% 3.86/2.02 ( ( ( I = J )
% 3.86/2.02 & ( K = L2 ) )
% 3.86/2.02 => ( ( plus_plus @ A @ I @ K )
% 3.86/2.02 = ( plus_plus @ A @ J @ L2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_177_group__cancel_Oadd1,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( comm_monoid_add @ A )
% 3.86/2.02 => ! [A5: A,K: A,A2: A,B2: A] :
% 3.86/2.02 ( ( A5
% 3.86/2.02 = ( plus_plus @ A @ K @ A2 ) )
% 3.86/2.02 => ( ( plus_plus @ A @ A5 @ B2 )
% 3.86/2.02 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_178_group__cancel_Oadd2,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( comm_monoid_add @ A )
% 3.86/2.02 => ! [B6: A,K: A,B2: A,A2: A] :
% 3.86/2.02 ( ( B6
% 3.86/2.02 = ( plus_plus @ A @ K @ B2 ) )
% 3.86/2.02 => ( ( plus_plus @ A @ A2 @ B6 )
% 3.86/2.02 = ( plus_plus @ A @ K @ ( plus_plus @ A @ A2 @ B2 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_179_add_Oassoc,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( semigroup_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A,C2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ ( plus_plus @ A @ A2 @ B2 ) @ C2 )
% 3.86/2.02 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_180_add_Oleft__cancel,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( group_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A,C2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ A2 @ B2 )
% 3.86/2.02 = ( plus_plus @ A @ A2 @ C2 ) )
% 3.86/2.02 = ( B2 = C2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_181_add_Oright__cancel,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( group_add @ A )
% 3.86/2.02 => ! [B2: A,A2: A,C2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ B2 @ A2 )
% 3.86/2.02 = ( plus_plus @ A @ C2 @ A2 ) )
% 3.86/2.02 = ( B2 = C2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_182_add_Ocommute,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( ab_semigroup_add @ A )
% 3.86/2.02 => ( ( plus_plus @ A )
% 3.86/2.02 = ( ^ [A6: A,B5: A] : ( plus_plus @ A @ B5 @ A6 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_183_add_Oleft__commute,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( ab_semigroup_add @ A )
% 3.86/2.02 => ! [B2: A,A2: A,C2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ B2 @ ( plus_plus @ A @ A2 @ C2 ) )
% 3.86/2.02 = ( plus_plus @ A @ A2 @ ( plus_plus @ A @ B2 @ C2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_184_add__left__imp__eq,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel_semigroup_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A,C2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ A2 @ B2 )
% 3.86/2.02 = ( plus_plus @ A @ A2 @ C2 ) )
% 3.86/2.02 => ( B2 = C2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_185_add__right__imp__eq,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel_semigroup_add @ A )
% 3.86/2.02 => ! [B2: A,A2: A,C2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ B2 @ A2 )
% 3.86/2.02 = ( plus_plus @ A @ C2 @ A2 ) )
% 3.86/2.02 => ( B2 = C2 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_186_case__prod__Pair__iden,axiom,
% 3.86/2.02 ! [B: $tType,A: $tType,P4: product_prod @ A @ B] :
% 3.86/2.02 ( ( product_case_prod @ A @ B @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B ) @ P4 )
% 3.86/2.02 = P4 ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_187_Assign__ir__valid,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,X4: list @ char,E3: aexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ? [V3: int] :
% 3.86/2.02 ( ( P @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) @ T6 )
% 3.86/2.02 & ( ( T5 @ X4 )
% 3.86/2.02 = ( aval @ E3 @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) ) ) )
% 3.86/2.02 @ skip
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ P @ ( assign @ X4 @ E3 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_188_split__cong,axiom,
% 3.86/2.02 ! [C: $tType,B: $tType,A: $tType,Q4: product_prod @ A @ B,F: A > B > C,G: A > B > C,P4: product_prod @ A @ B] :
% 3.86/2.02 ( ! [X3: A,Y3: B] :
% 3.86/2.02 ( ( ( product_Pair @ A @ B @ X3 @ Y3 )
% 3.86/2.02 = Q4 )
% 3.86/2.02 => ( ( F @ X3 @ Y3 )
% 3.86/2.02 = ( G @ X3 @ Y3 ) ) )
% 3.86/2.02 => ( ( P4 = Q4 )
% 3.86/2.02 => ( ( product_case_prod @ A @ B @ C @ F @ P4 )
% 3.86/2.02 = ( product_case_prod @ A @ B @ C @ G @ Q4 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_189_ir__Assign,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,X4: list @ char,E3: aexp,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati1493963588_hoare
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ? [V3: int] :
% 3.86/2.02 ( ( P @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) @ T6 )
% 3.86/2.02 & ( ( T5 @ X4 )
% 3.86/2.02 = ( aval @ E3 @ ( fun_upd @ ( list @ char ) @ int @ T5 @ X4 @ V3 ) ) ) )
% 3.86/2.02 @ skip
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati1493963588_hoare @ P @ ( assign @ X4 @ E3 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_190_setcompr__eq__image,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: B > A,P: B > $o] :
% 3.86/2.02 ( ( collect @ A
% 3.86/2.02 @ ^ [Uu: A] :
% 3.86/2.02 ? [X: B] :
% 3.86/2.02 ( ( Uu
% 3.86/2.02 = ( F @ X ) )
% 3.86/2.02 & ( P @ X ) ) )
% 3.86/2.02 = ( image @ B @ A @ F @ ( collect @ B @ P ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_191_Setcompr__eq__image,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,F: B > A,A5: set @ B] :
% 3.86/2.02 ( ( collect @ A
% 3.86/2.02 @ ^ [Uu: A] :
% 3.86/2.02 ? [X: B] :
% 3.86/2.02 ( ( Uu
% 3.86/2.02 = ( F @ X ) )
% 3.86/2.02 & ( member @ B @ X @ A5 ) ) )
% 3.86/2.02 = ( image @ B @ A @ F @ A5 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_192_ir__valid__While2,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid @ P @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 3.86/2.02 => ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ~ ( bval @ B2 @ S ) )
% 3.86/2.02 @ skip
% 3.86/2.02 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( Q @ T5 @ T6 )
% 3.86/2.02 & ? [S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 3.86/2.02 & ( P @ T5 @ S2 )
% 3.86/2.02 & ~ ( bval @ B2 @ T5 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_193_ir__valid__Seq1_H,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 3.86/2.02 => ( relati167478067_valid
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T5 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 3.86/2.02 & ? [U2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T5 ) @ U2 )
% 3.86/2.02 & ( Q @ U2 @ T6 ) ) )
% 3.86/2.02 @ C22
% 3.86/2.02 @ skip
% 3.86/2.02 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_194_ir__valid__track__history,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,S7: ( list @ char ) > int,S6: ( list @ char ) > int] :
% 3.86/2.02 ( ( relati167478067_valid @ P @ C2 @ C3 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ P @ C2 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( Q @ S7 @ S6 )
% 3.86/2.02 & ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_195_decomp__def,axiom,
% 3.86/2.02 ( relati332478480decomp
% 3.86/2.02 = ( ^ [P2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C4: com,C5: com,Q2: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,T5: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ? [S: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( P2 @ S @ S2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C4 @ S ) @ T5 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C5 @ S2 ) @ T6 )
% 3.86/2.02 & ( Q2 @ T5 @ T6 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_196_ir__valid__Seq1,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid @ P @ ( seq @ C1 @ C22 ) @ C3 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ P @ C1 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T5 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 3.86/2.02 & ? [U2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ T5 ) @ U2 )
% 3.86/2.02 & ( Q @ U2 @ T6 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_197_ir__valid__If,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C1: com,C22: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid @ P @ ( if @ B2 @ C1 @ C22 ) @ C3 @ Q )
% 3.86/2.02 => ( ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ C1
% 3.86/2.02 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( Q @ T5 @ T6 )
% 3.86/2.02 & ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C1 @ S ) @ T5 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 3.86/2.02 & ( bval @ B2 @ S ) ) ) )
% 3.86/2.02 & ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ~ ( bval @ B2 @ S ) )
% 3.86/2.02 @ C22
% 3.86/2.02 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( Q @ T5 @ T6 )
% 3.86/2.02 & ? [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ S @ S2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C22 @ S ) @ T5 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 3.86/2.02 & ~ ( bval @ B2 @ S ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_198_get__back_Osimps_I2_J,axiom,
% 3.86/2.02 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com,N3: nat] :
% 3.86/2.02 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( suc @ N3 ) )
% 3.86/2.02 = ( ^ [T5: ( list @ char ) > int,T6: A] :
% 3.86/2.02 ? [S: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C2 @ S ) @ T5 )
% 3.86/2.02 & ( bval @ B2 @ S )
% 3.86/2.02 & ( relati1010904253t_back @ A @ P @ B2 @ C2 @ N3 @ S @ T6 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_199_ir__valid__While1,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,K: nat,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 3.86/2.02 => ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ C2
% 3.86/2.02 @ skip
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) @ T5 @ T6 )
% 3.86/2.02 & ? [U2: ( list @ char ) > int,U3: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ T5 ) @ U2 )
% 3.86/2.02 & ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ T6 ) @ U3 )
% 3.86/2.02 & ( Q @ U2 @ U3 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_200_ir__valid__get__back,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,K: nat,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_201_ir__valid__While3,axiom,
% 3.86/2.02 ! [P: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,K: nat,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ( relati167478067_valid @ ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K ) @ ( while @ B2 @ C2 ) @ C3 @ Q )
% 3.86/2.02 => ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ K @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ C2
% 3.86/2.02 @ C3
% 3.86/2.02 @ ^ [T5: ( list @ char ) > int,T6: ( list @ char ) > int] :
% 3.86/2.02 ? [S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ C3 @ S2 ) @ T6 )
% 3.86/2.02 & ( relati1010904253t_back @ ( ( list @ char ) > int ) @ P @ B2 @ C2 @ ( suc @ K ) @ T5 @ S2 )
% 3.86/2.02 & ? [U2: ( list @ char ) > int] :
% 3.86/2.02 ( ( big_big_step @ ( product_Pair @ com @ ( ( list @ char ) > int ) @ ( while @ B2 @ C2 ) @ T5 ) @ U2 )
% 3.86/2.02 & ( Q @ U2 @ T6 ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_202_While__backwards__frontier__ir__valid,axiom,
% 3.86/2.02 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ! [N: nat] :
% 3.86/2.02 ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ N @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ C2
% 3.86/2.02 @ skip
% 3.86/2.02 @ ( P @ ( suc @ N ) ) )
% 3.86/2.02 => ( ( relati167478067_valid
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ? [N5: nat] : ( P @ N5 @ S @ S2 )
% 3.86/2.02 @ ( while @ B2 @ C2 )
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati167478067_valid @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_203_ir__While__backwards__frontier,axiom,
% 3.86/2.02 ! [P: nat > ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o,B2: bexp,C2: com,C3: com,Q: ( ( list @ char ) > int ) > ( ( list @ char ) > int ) > $o] :
% 3.86/2.02 ( ! [N: nat] :
% 3.86/2.02 ( relati1493963588_hoare
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ( ( P @ N @ S @ S2 )
% 3.86/2.02 & ( bval @ B2 @ S ) )
% 3.86/2.02 @ C2
% 3.86/2.02 @ skip
% 3.86/2.02 @ ( P @ ( suc @ N ) ) )
% 3.86/2.02 => ( ( relati1493963588_hoare
% 3.86/2.02 @ ^ [S: ( list @ char ) > int,S2: ( list @ char ) > int] :
% 3.86/2.02 ? [N5: nat] : ( P @ N5 @ S @ S2 )
% 3.86/2.02 @ ( while @ B2 @ C2 )
% 3.86/2.02 @ C3
% 3.86/2.02 @ Q )
% 3.86/2.02 => ( relati1493963588_hoare @ ( P @ ( zero_zero @ nat ) ) @ ( while @ B2 @ C2 ) @ C3 @ Q ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_204_add_Oleft__neutral,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( monoid_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 3.86/2.02 = A2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_205_add_Oright__neutral,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( monoid_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 3.86/2.02 = A2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_206_double__zero,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( linord219039673up_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ A2 @ A2 )
% 3.86/2.02 = ( zero_zero @ A ) )
% 3.86/2.02 = ( A2
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_207_double__zero__sym,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( linord219039673up_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( ( zero_zero @ A )
% 3.86/2.02 = ( plus_plus @ A @ A2 @ A2 ) )
% 3.86/2.02 = ( A2
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_208_add__cancel__left__left,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel1352612707id_add @ A )
% 3.86/2.02 => ! [B2: A,A2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ B2 @ A2 )
% 3.86/2.02 = A2 )
% 3.86/2.02 = ( B2
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_209_add__cancel__left__right,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel1352612707id_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ A2 @ B2 )
% 3.86/2.02 = A2 )
% 3.86/2.02 = ( B2
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_210_add__cancel__right__left,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel1352612707id_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A] :
% 3.86/2.02 ( ( A2
% 3.86/2.02 = ( plus_plus @ A @ B2 @ A2 ) )
% 3.86/2.02 = ( B2
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_211_add__cancel__right__right,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel1352612707id_add @ A )
% 3.86/2.02 => ! [A2: A,B2: A] :
% 3.86/2.02 ( ( A2
% 3.86/2.02 = ( plus_plus @ A @ A2 @ B2 ) )
% 3.86/2.02 = ( B2
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_212_add__eq__0__iff__both__eq__0,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( canoni770627133id_add @ A )
% 3.86/2.02 => ! [X4: A,Y: A] :
% 3.86/2.02 ( ( ( plus_plus @ A @ X4 @ Y )
% 3.86/2.02 = ( zero_zero @ A ) )
% 3.86/2.02 = ( ( X4
% 3.86/2.02 = ( zero_zero @ A ) )
% 3.86/2.02 & ( Y
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_213_zero__eq__add__iff__both__eq__0,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( canoni770627133id_add @ A )
% 3.86/2.02 => ! [X4: A,Y: A] :
% 3.86/2.02 ( ( ( zero_zero @ A )
% 3.86/2.02 = ( plus_plus @ A @ X4 @ Y ) )
% 3.86/2.02 = ( ( X4
% 3.86/2.02 = ( zero_zero @ A ) )
% 3.86/2.02 & ( Y
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_214_Nat_Oadd__0__right,axiom,
% 3.86/2.02 ! [M: nat] :
% 3.86/2.02 ( ( plus_plus @ nat @ M @ ( zero_zero @ nat ) )
% 3.86/2.02 = M ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_215_add__is__0,axiom,
% 3.86/2.02 ! [M: nat,N3: nat] :
% 3.86/2.02 ( ( ( plus_plus @ nat @ M @ N3 )
% 3.86/2.02 = ( zero_zero @ nat ) )
% 3.86/2.02 = ( ( M
% 3.86/2.02 = ( zero_zero @ nat ) )
% 3.86/2.02 & ( N3
% 3.86/2.02 = ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_216_image__add__0,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( comm_monoid_add @ A )
% 3.86/2.02 => ! [S9: set @ A] :
% 3.86/2.02 ( ( image @ A @ A @ ( plus_plus @ A @ ( zero_zero @ A ) ) @ S9 )
% 3.86/2.02 = S9 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_217_get__back_Osimps_I1_J,axiom,
% 3.86/2.02 ! [A: $tType,P: ( ( list @ char ) > int ) > A > $o,B2: bexp,C2: com] :
% 3.86/2.02 ( ( relati1010904253t_back @ A @ P @ B2 @ C2 @ ( zero_zero @ nat ) )
% 3.86/2.02 = P ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_218_nat_Odistinct_I1_J,axiom,
% 3.86/2.02 ! [X2: nat] :
% 3.86/2.02 ( ( zero_zero @ nat )
% 3.86/2.02 != ( suc @ X2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_219_old_Onat_Odistinct_I2_J,axiom,
% 3.86/2.02 ! [Nat3: nat] :
% 3.86/2.02 ( ( suc @ Nat3 )
% 3.86/2.02 != ( zero_zero @ nat ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_220_old_Onat_Odistinct_I1_J,axiom,
% 3.86/2.02 ! [Nat2: nat] :
% 3.86/2.02 ( ( zero_zero @ nat )
% 3.86/2.02 != ( suc @ Nat2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_221_nat_OdiscI,axiom,
% 3.86/2.02 ! [Nat: nat,X2: nat] :
% 3.86/2.02 ( ( Nat
% 3.86/2.02 = ( suc @ X2 ) )
% 3.86/2.02 => ( Nat
% 3.86/2.02 != ( zero_zero @ nat ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_222_nat__induct,axiom,
% 3.86/2.02 ! [P: nat > $o,N3: nat] :
% 3.86/2.02 ( ( P @ ( zero_zero @ nat ) )
% 3.86/2.02 => ( ! [N: nat] :
% 3.86/2.02 ( ( P @ N )
% 3.86/2.02 => ( P @ ( suc @ N ) ) )
% 3.86/2.02 => ( P @ N3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_223_diff__induct,axiom,
% 3.86/2.02 ! [P: nat > nat > $o,M: nat,N3: nat] :
% 3.86/2.02 ( ! [X3: nat] : ( P @ X3 @ ( zero_zero @ nat ) )
% 3.86/2.02 => ( ! [Y3: nat] : ( P @ ( zero_zero @ nat ) @ ( suc @ Y3 ) )
% 3.86/2.02 => ( ! [X3: nat,Y3: nat] :
% 3.86/2.02 ( ( P @ X3 @ Y3 )
% 3.86/2.02 => ( P @ ( suc @ X3 ) @ ( suc @ Y3 ) ) )
% 3.86/2.02 => ( P @ M @ N3 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_224_zero__induct,axiom,
% 3.86/2.02 ! [P: nat > $o,K: nat] :
% 3.86/2.02 ( ( P @ K )
% 3.86/2.02 => ( ! [N: nat] :
% 3.86/2.02 ( ( P @ ( suc @ N ) )
% 3.86/2.02 => ( P @ N ) )
% 3.86/2.02 => ( P @ ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_225_Suc__neq__Zero,axiom,
% 3.86/2.02 ! [M: nat] :
% 3.86/2.02 ( ( suc @ M )
% 3.86/2.02 != ( zero_zero @ nat ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_226_Zero__neq__Suc,axiom,
% 3.86/2.02 ! [M: nat] :
% 3.86/2.02 ( ( zero_zero @ nat )
% 3.86/2.02 != ( suc @ M ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_227_Zero__not__Suc,axiom,
% 3.86/2.02 ! [M: nat] :
% 3.86/2.02 ( ( zero_zero @ nat )
% 3.86/2.02 != ( suc @ M ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_228_old_Onat_Oexhaust,axiom,
% 3.86/2.02 ! [Y: nat] :
% 3.86/2.02 ( ( Y
% 3.86/2.02 != ( zero_zero @ nat ) )
% 3.86/2.02 => ~ ! [Nat4: nat] :
% 3.86/2.02 ( Y
% 3.86/2.02 != ( suc @ Nat4 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_229_old_Onat_Oinducts,axiom,
% 3.86/2.02 ! [P: nat > $o,Nat: nat] :
% 3.86/2.02 ( ( P @ ( zero_zero @ nat ) )
% 3.86/2.02 => ( ! [Nat4: nat] :
% 3.86/2.02 ( ( P @ Nat4 )
% 3.86/2.02 => ( P @ ( suc @ Nat4 ) ) )
% 3.86/2.02 => ( P @ Nat ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_230_not0__implies__Suc,axiom,
% 3.86/2.02 ! [N3: nat] :
% 3.86/2.02 ( ( N3
% 3.86/2.02 != ( zero_zero @ nat ) )
% 3.86/2.02 => ? [M3: nat] :
% 3.86/2.02 ( N3
% 3.86/2.02 = ( suc @ M3 ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_231_comm__monoid__add__class_Oadd__0,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( comm_monoid_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 3.86/2.02 = A2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_232_add_Ocomm__neutral,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( comm_monoid_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 3.86/2.02 = A2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_233_add_Ogroup__left__neutral,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( group_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ ( zero_zero @ A ) @ A2 )
% 3.86/2.02 = A2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_234_fun__cong__unused__0,axiom,
% 3.86/2.02 ! [A: $tType,B: $tType,C: $tType] :
% 3.86/2.02 ( ( zero @ B )
% 3.86/2.02 => ! [F: ( A > B ) > C,G: C] :
% 3.86/2.02 ( ( F
% 3.86/2.02 = ( ^ [X: A > B] : G ) )
% 3.86/2.02 => ( ( F
% 3.86/2.02 @ ^ [X: A] : ( zero_zero @ B ) )
% 3.86/2.02 = G ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_235_add__eq__self__zero,axiom,
% 3.86/2.02 ! [M: nat,N3: nat] :
% 3.86/2.02 ( ( ( plus_plus @ nat @ M @ N3 )
% 3.86/2.02 = M )
% 3.86/2.02 => ( N3
% 3.86/2.02 = ( zero_zero @ nat ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_236_plus__nat_Oadd__0,axiom,
% 3.86/2.02 ! [N3: nat] :
% 3.86/2.02 ( ( plus_plus @ nat @ ( zero_zero @ nat ) @ N3 )
% 3.86/2.02 = N3 ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_237_one__is__add,axiom,
% 3.86/2.02 ! [M: nat,N3: nat] :
% 3.86/2.02 ( ( ( suc @ ( zero_zero @ nat ) )
% 3.86/2.02 = ( plus_plus @ nat @ M @ N3 ) )
% 3.86/2.02 = ( ( ( M
% 3.86/2.02 = ( suc @ ( zero_zero @ nat ) ) )
% 3.86/2.02 & ( N3
% 3.86/2.02 = ( zero_zero @ nat ) ) )
% 3.86/2.02 | ( ( M
% 3.86/2.02 = ( zero_zero @ nat ) )
% 3.86/2.02 & ( N3
% 3.86/2.02 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_238_add__is__1,axiom,
% 3.86/2.02 ! [M: nat,N3: nat] :
% 3.86/2.02 ( ( ( plus_plus @ nat @ M @ N3 )
% 3.86/2.02 = ( suc @ ( zero_zero @ nat ) ) )
% 3.86/2.02 = ( ( ( M
% 3.86/2.02 = ( suc @ ( zero_zero @ nat ) ) )
% 3.86/2.02 & ( N3
% 3.86/2.02 = ( zero_zero @ nat ) ) )
% 3.86/2.02 | ( ( M
% 3.86/2.02 = ( zero_zero @ nat ) )
% 3.86/2.02 & ( N3
% 3.86/2.02 = ( suc @ ( zero_zero @ nat ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_239_com_Osize__gen_I4_J,axiom,
% 3.86/2.02 ! [X41: bexp,X42: com,X43: com] :
% 3.86/2.02 ( ( size_com @ ( if @ X41 @ X42 @ X43 ) )
% 3.86/2.02 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X42 ) @ ( size_com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_240_com_Osize__gen_I3_J,axiom,
% 3.86/2.02 ! [X31: com,X32: com] :
% 3.86/2.02 ( ( size_com @ ( seq @ X31 @ X32 ) )
% 3.86/2.02 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_com @ X31 ) @ ( size_com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_241_com_Osize__gen_I1_J,axiom,
% 3.86/2.02 ( ( size_com @ skip )
% 3.86/2.02 = ( zero_zero @ nat ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_242_com_Osize__gen_I2_J,axiom,
% 3.86/2.02 ! [X21: list @ char,X22: aexp] :
% 3.86/2.02 ( ( size_com @ ( assign @ X21 @ X22 ) )
% 3.86/2.02 = ( zero_zero @ nat ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_243_com_Osize__gen_I5_J,axiom,
% 3.86/2.02 ! [X51: bexp,X52: com] :
% 3.86/2.02 ( ( size_com @ ( while @ X51 @ X52 ) )
% 3.86/2.02 = ( plus_plus @ nat @ ( size_com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_244_com_Osize_I9_J,axiom,
% 3.86/2.02 ! [X41: bexp,X42: com,X43: com] :
% 3.86/2.02 ( ( size_size @ com @ ( if @ X41 @ X42 @ X43 ) )
% 3.86/2.02 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X42 ) @ ( size_size @ com @ X43 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_245_com_Osize_I8_J,axiom,
% 3.86/2.02 ! [X31: com,X32: com] :
% 3.86/2.02 ( ( size_size @ com @ ( seq @ X31 @ X32 ) )
% 3.86/2.02 = ( plus_plus @ nat @ ( plus_plus @ nat @ ( size_size @ com @ X31 ) @ ( size_size @ com @ X32 ) ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_246_com_Osize_I6_J,axiom,
% 3.86/2.02 ( ( size_size @ com @ skip )
% 3.86/2.02 = ( zero_zero @ nat ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_247_com_Osize_I7_J,axiom,
% 3.86/2.02 ! [X21: list @ char,X22: aexp] :
% 3.86/2.02 ( ( size_size @ com @ ( assign @ X21 @ X22 ) )
% 3.86/2.02 = ( zero_zero @ nat ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_248_com_Osize_I10_J,axiom,
% 3.86/2.02 ! [X51: bexp,X52: com] :
% 3.86/2.02 ( ( size_size @ com @ ( while @ X51 @ X52 ) )
% 3.86/2.02 = ( plus_plus @ nat @ ( size_size @ com @ X52 ) @ ( suc @ ( zero_zero @ nat ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_249_Euclid__induct,axiom,
% 3.86/2.02 ! [P: nat > nat > $o,A2: nat,B2: nat] :
% 3.86/2.02 ( ! [A4: nat,B4: nat] :
% 3.86/2.02 ( ( P @ A4 @ B4 )
% 3.86/2.02 = ( P @ B4 @ A4 ) )
% 3.86/2.02 => ( ! [A4: nat] : ( P @ A4 @ ( zero_zero @ nat ) )
% 3.86/2.02 => ( ! [A4: nat,B4: nat] :
% 3.86/2.02 ( ( P @ A4 @ B4 )
% 3.86/2.02 => ( P @ A4 @ ( plus_plus @ nat @ A4 @ B4 ) ) )
% 3.86/2.02 => ( P @ A2 @ B2 ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_250_zero__notin__Suc__image,axiom,
% 3.86/2.02 ! [A5: set @ nat] :
% 3.86/2.02 ~ ( member @ nat @ ( zero_zero @ nat ) @ ( image @ nat @ nat @ suc @ A5 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_251_dependent__nat__choice,axiom,
% 3.86/2.02 ! [A: $tType,P: nat > A > $o,Q: nat > A > A > $o] :
% 3.86/2.02 ( ? [X_1: A] : ( P @ ( zero_zero @ nat ) @ X_1 )
% 3.86/2.02 => ( ! [X3: A,N: nat] :
% 3.86/2.02 ( ( P @ N @ X3 )
% 3.86/2.02 => ? [Y6: A] :
% 3.86/2.02 ( ( P @ ( suc @ N ) @ Y6 )
% 3.86/2.02 & ( Q @ N @ X3 @ Y6 ) ) )
% 3.86/2.02 => ? [F7: nat > A] :
% 3.86/2.02 ! [N2: nat] :
% 3.86/2.02 ( ( P @ N2 @ ( F7 @ N2 ) )
% 3.86/2.02 & ( Q @ N2 @ ( F7 @ N2 ) @ ( F7 @ ( suc @ N2 ) ) ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_252_add__0__iff,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( semiri456707255roduct @ A )
% 3.86/2.02 => ! [B2: A,A2: A] :
% 3.86/2.02 ( ( B2
% 3.86/2.02 = ( plus_plus @ A @ B2 @ A2 ) )
% 3.86/2.02 = ( A2
% 3.86/2.02 = ( zero_zero @ A ) ) ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_253_verit__sum__simplify,axiom,
% 3.86/2.02 ! [A: $tType] :
% 3.86/2.02 ( ( cancel1352612707id_add @ A )
% 3.86/2.02 => ! [A2: A] :
% 3.86/2.02 ( ( plus_plus @ A @ A2 @ ( zero_zero @ A ) )
% 3.86/2.02 = A2 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(fact_254_Inf_OINF__identity__eq,axiom,
% 3.86/2.02 ! [A: $tType,Inf: ( set @ A ) > A,A5: set @ A] :
% 3.86/2.02 ( ( Inf
% 3.86/2.02 @ ( image @ A @ A
% 3.86/2.02 @ ^ [X: A] : X
% 3.86/2.02 @ A5 ) )
% 3.86/2.02 = ( Inf @ A5 ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct,axiom,
% 3.86/2.02 semiri456707255roduct @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Oordered__ab__semigroup__add,axiom,
% 3.86/2.02 ordere779506340up_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Olinordered__ab__group__add,axiom,
% 3.86/2.02 linord219039673up_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Ocancel__comm__monoid__add,axiom,
% 3.86/2.02 cancel1352612707id_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Ocancel__semigroup__add,axiom,
% 3.86/2.02 cancel_semigroup_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Oab__semigroup__add,axiom,
% 3.86/2.02 ab_semigroup_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Ocomm__monoid__add,axiom,
% 3.86/2.02 comm_monoid_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Osemigroup__add,axiom,
% 3.86/2.02 semigroup_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Omonoid__add,axiom,
% 3.86/2.02 monoid_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Ogroup__add,axiom,
% 3.86/2.02 group_add @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Int_Oint___Groups_Ozero,axiom,
% 3.86/2.02 zero @ int ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Semiring__Normalization_Ocomm__semiring__1__cancel__crossproduct_1,axiom,
% 3.86/2.02 semiri456707255roduct @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Ocanonically__ordered__monoid__add,axiom,
% 3.86/2.02 canoni770627133id_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Oordered__ab__semigroup__add_2,axiom,
% 3.86/2.02 ordere779506340up_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Ocancel__comm__monoid__add_3,axiom,
% 3.86/2.02 cancel1352612707id_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Ocancel__semigroup__add_4,axiom,
% 3.86/2.02 cancel_semigroup_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Oab__semigroup__add_5,axiom,
% 3.86/2.02 ab_semigroup_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Ocomm__monoid__add_6,axiom,
% 3.86/2.02 comm_monoid_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Osemigroup__add_7,axiom,
% 3.86/2.02 semigroup_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Omonoid__add_8,axiom,
% 3.86/2.02 monoid_add @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(tcon_Nat_Onat___Groups_Ozero_9,axiom,
% 3.86/2.02 zero @ nat ).
% 3.86/2.02
% 3.86/2.02 thf(help_If_3_1_T,axiom,
% 3.86/2.02 ! [P: $o] :
% 3.86/2.02 ( ( P = $true )
% 3.86/2.02 | ( P = $false ) ) ).
% 3.86/2.02
% 3.86/2.02 thf(help_If_2_1_T,axiom,
% 3.86/2.02 ! [A: $tType,X4: A,Y: A] :
% 3.86/2.02 ( ( if2 @ A @ $false @ X4 @ Y )
% 3.86/2.02 = Y ) ).
% 3.86/2.02
% 3.86/2.02 thf(help_If_1_1_T,axiom,
% 3.86/2.02 ! [A: $tType,X4: A,Y: A] :
% 3.86/2.02 ( ( if2 @ A @ $true @ X4 @ Y )
% 3.86/2.02 = X4 ) ).
% 3.86/2.02
% 3.86/2.02 thf(conj_0,conjecture,
% 3.86/2.02 ( ( relati1493963588_hoare @ p @ c @ c2 @ q )
% 3.86/2.02 = ( ( relati1493963588_hoare @ p @ c @ skip @ ( relati332478480decomp @ p @ c @ c2 @ q ) )
% 3.86/2.02 & ( relati1493963588_hoare @ ( relati332478480decomp @ p @ c @ c2 @ q ) @ skip @ c2 @ q ) ) ) ).
% 3.86/2.02 ------------------------
% 4.02/2.07 % (23818)lrs+1004_1:128_cond=on:e2e=on:sp=weighted_frequency:i=18:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/18Mi)
% 4.02/2.07 % (23812)lrs+1002_1:8_bd=off:fd=off:hud=10:tnu=1:i=183:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/183Mi)
% 4.02/2.07 % (23814)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_23713 for (2999ds/27Mi)
% 4.02/2.07 % (23816)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_23713 for (2999ds/2Mi)
% 4.02/2.07 % (23817)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_23713 for (2999ds/275Mi)
% 4.02/2.07 % (23813)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_23713 for (2999ds/4Mi)
% 4.02/2.07 % (23815)lrs+10_1:1_au=on:inj=on:i=2:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/2Mi)
% 4.02/2.07 % (23815)Instruction limit reached!
% 4.02/2.07 % (23815)------------------------------
% 4.02/2.07 % (23815)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.07 % (23815)Termination reason: Unknown
% 4.02/2.07 % (23816)Instruction limit reached!
% 4.02/2.07 % (23816)------------------------------
% 4.02/2.07 % (23816)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.07 % (23816)Termination reason: Unknown
% 4.02/2.07 % (23816)Termination phase: shuffling
% 4.02/2.07
% 4.02/2.07 % (23816)Memory used [KB]: 1407
% 4.02/2.07 % (23816)Time elapsed: 0.003 s
% 4.02/2.07 % (23816)Instructions burned: 2 (million)
% 4.02/2.07 % (23816)------------------------------
% 4.02/2.07 % (23816)------------------------------
% 4.02/2.07 % (23815)Termination phase: shuffling
% 4.02/2.07
% 4.02/2.07 % (23815)Memory used [KB]: 1407
% 4.02/2.07 % (23815)Time elapsed: 0.003 s
% 4.02/2.07 % (23815)Instructions burned: 2 (million)
% 4.02/2.07 % (23815)------------------------------
% 4.02/2.07 % (23815)------------------------------
% 4.02/2.07 % (23813)Instruction limit reached!
% 4.02/2.07 % (23813)------------------------------
% 4.02/2.07 % (23813)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.07 % (23813)Termination reason: Unknown
% 4.02/2.07 % (23813)Termination phase: shuffling
% 4.02/2.07
% 4.02/2.07 % (23813)Memory used [KB]: 1535
% 4.02/2.07 % (23813)Time elapsed: 0.004 s
% 4.02/2.07 % (23813)Instructions burned: 4 (million)
% 4.02/2.07 % (23813)------------------------------
% 4.02/2.07 % (23813)------------------------------
% 4.02/2.07 % (23818)Instruction limit reached!
% 4.02/2.07 % (23818)------------------------------
% 4.02/2.07 % (23818)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.07 % (23818)Termination reason: Unknown
% 4.02/2.07 % (23818)Termination phase: shuffling
% 4.02/2.07
% 4.02/2.07 % (23818)Memory used [KB]: 1663
% 4.02/2.07 % (23818)Time elapsed: 0.012 s
% 4.02/2.07 % (23818)Instructions burned: 18 (million)
% 4.02/2.07 % (23818)------------------------------
% 4.02/2.07 % (23818)------------------------------
% 4.02/2.08 % (23814)Instruction limit reached!
% 4.02/2.08 % (23814)------------------------------
% 4.02/2.08 % (23814)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.08 % (23814)Termination reason: Unknown
% 4.02/2.08 % (23814)Termination phase: shuffling
% 4.02/2.08
% 4.02/2.08 % (23814)Memory used [KB]: 1791
% 4.02/2.08 % (23814)Time elapsed: 0.016 s
% 4.02/2.08 % (23814)Instructions burned: 27 (million)
% 4.02/2.08 % (23814)------------------------------
% 4.02/2.08 % (23814)------------------------------
% 4.02/2.09 % (23820)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_23713 for (2999ds/37Mi)
% 4.02/2.09 % (23819)lrs+10_1:1_bet=on:cnfonf=off:fd=off:hud=5:inj=on:i=3:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/3Mi)
% 4.02/2.09 % (23821)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_23713 for (2999ds/15Mi)
% 4.02/2.09 % (23819)Instruction limit reached!
% 4.02/2.09 % (23819)------------------------------
% 4.02/2.09 % (23819)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.09 % (23819)Termination reason: Unknown
% 4.02/2.09 % (23819)Termination phase: shuffling
% 4.02/2.09
% 4.02/2.09 % (23819)Memory used [KB]: 1407
% 4.02/2.09 % (23819)Time elapsed: 0.004 s
% 4.02/2.09 % (23819)Instructions burned: 3 (million)
% 4.02/2.09 % (23819)------------------------------
% 4.02/2.09 % (23819)------------------------------
% 4.02/2.09 % (23821)Instruction limit reached!
% 4.02/2.09 % (23821)------------------------------
% 4.02/2.09 % (23821)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.09 % (23821)Termination reason: Unknown
% 4.02/2.09 % (23821)Termination phase: shuffling
% 4.02/2.09
% 4.02/2.09 % (23821)Memory used [KB]: 1663
% 4.02/2.09 % (23821)Time elapsed: 0.010 s
% 4.02/2.09 % (23821)Instructions burned: 16 (million)
% 4.02/2.09 % (23821)------------------------------
% 4.02/2.09 % (23821)------------------------------
% 4.02/2.09 % (23822)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_23713 for (2999ds/3Mi)
% 4.02/2.10 % (23822)Instruction limit reached!
% 4.02/2.10 % (23822)------------------------------
% 4.02/2.10 % (23822)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.10 % (23822)Termination reason: Unknown
% 4.02/2.10 % (23822)Termination phase: shuffling
% 4.02/2.10
% 4.02/2.10 % (23822)Memory used [KB]: 1407
% 4.02/2.10 % (23822)Time elapsed: 0.004 s
% 4.02/2.10 % (23822)Instructions burned: 3 (million)
% 4.02/2.10 % (23822)------------------------------
% 4.02/2.10 % (23822)------------------------------
% 4.02/2.10 % (23823)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_23713 for (2999ds/1041Mi)
% 4.02/2.10 % (23820)Instruction limit reached!
% 4.02/2.10 % (23820)------------------------------
% 4.02/2.10 % (23820)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.10 % (23820)Termination reason: Unknown
% 4.02/2.10 % (23820)Termination phase: shuffling
% 4.02/2.10
% 4.02/2.10 % (23820)Memory used [KB]: 2174
% 4.02/2.10 % (23820)Time elapsed: 0.021 s
% 4.02/2.10 % (23820)Instructions burned: 38 (million)
% 4.02/2.10 % (23820)------------------------------
% 4.02/2.10 % (23820)------------------------------
% 4.02/2.11 % (23824)lrs+10_1:1_av=off:chr=on:plsq=on:slsq=on:i=7:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/7Mi)
% 4.02/2.11 % (23824)Instruction limit reached!
% 4.02/2.11 % (23824)------------------------------
% 4.02/2.11 % (23824)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.11 % (23824)Termination reason: Unknown
% 4.02/2.11 % (23824)Termination phase: shuffling
% 4.02/2.11
% 4.02/2.11 % (23824)Memory used [KB]: 1535
% 4.02/2.11 % (23824)Time elapsed: 0.006 s
% 4.02/2.11 % (23824)Instructions burned: 7 (million)
% 4.02/2.11 % (23824)------------------------------
% 4.02/2.11 % (23824)------------------------------
% 4.02/2.11 % (23825)lrs+10_1:1_acc=on:amm=sco:cs=on:tgt=full:i=16:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/16Mi)
% 4.02/2.11 % (23826)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_23713 for (2999ds/3Mi)
% 4.02/2.12 % (23826)Instruction limit reached!
% 4.02/2.12 % (23826)------------------------------
% 4.02/2.12 % (23826)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.12 % (23826)Termination reason: Unknown
% 4.02/2.12 % (23826)Termination phase: shuffling
% 4.02/2.12
% 4.02/2.12 % (23826)Memory used [KB]: 1407
% 4.02/2.12 % (23826)Time elapsed: 0.004 s
% 4.02/2.12 % (23826)Instructions burned: 4 (million)
% 4.02/2.12 % (23826)------------------------------
% 4.02/2.12 % (23826)------------------------------
% 4.02/2.12 % (23825)Instruction limit reached!
% 4.02/2.12 % (23825)------------------------------
% 4.02/2.12 % (23825)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.12 % (23825)Termination reason: Unknown
% 4.02/2.12 % (23825)Termination phase: shuffling
% 4.02/2.12
% 4.02/2.12 % (23825)Memory used [KB]: 1663
% 4.02/2.12 % (23825)Time elapsed: 0.011 s
% 4.02/2.12 % (23825)Instructions burned: 17 (million)
% 4.02/2.12 % (23825)------------------------------
% 4.02/2.12 % (23825)------------------------------
% 4.02/2.12 % (23827)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_23713 for (2999ds/3Mi)
% 4.02/2.13 % (23827)Instruction limit reached!
% 4.02/2.13 % (23827)------------------------------
% 4.02/2.13 % (23827)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.13 % (23827)Termination reason: Unknown
% 4.02/2.13 % (23827)Termination phase: shuffling
% 4.02/2.13
% 4.02/2.13 % (23827)Memory used [KB]: 1407
% 4.02/2.13 % (23827)Time elapsed: 0.004 s
% 4.02/2.13 % (23827)Instructions burned: 4 (million)
% 4.02/2.13 % (23827)------------------------------
% 4.02/2.13 % (23827)------------------------------
% 4.02/2.13 % (23828)lrs+10_1:1_cnfonf=off:cs=on:hud=3:prag=on:sup=off:i=7:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/7Mi)
% 4.02/2.13 % (23828)Instruction limit reached!
% 4.02/2.13 % (23828)------------------------------
% 4.02/2.13 % (23828)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.13 % (23828)Termination reason: Unknown
% 4.02/2.13 % (23828)Termination phase: shuffling
% 4.02/2.13
% 4.02/2.13 % (23828)Memory used [KB]: 1535
% 4.02/2.13 % (23828)Time elapsed: 0.006 s
% 4.02/2.13 % (23828)Instructions burned: 8 (million)
% 4.02/2.13 % (23828)------------------------------
% 4.02/2.13 % (23828)------------------------------
% 4.02/2.13 % (23829)dis+1002_1:1_add=large:cnfonf=lazy_pi_sigma_gen:fe=off:prag=on:i=3:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/3Mi)
% 4.02/2.14 % (23829)Instruction limit reached!
% 4.02/2.14 % (23829)------------------------------
% 4.02/2.14 % (23829)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.14 % (23829)Termination reason: Unknown
% 4.02/2.14 % (23829)Termination phase: shuffling
% 4.02/2.14
% 4.02/2.14 % (23829)Memory used [KB]: 1407
% 4.02/2.14 % (23829)Time elapsed: 0.004 s
% 4.02/2.14 % (23829)Instructions burned: 3 (million)
% 4.02/2.14 % (23829)------------------------------
% 4.02/2.14 % (23829)------------------------------
% 4.02/2.14 % (23830)dis+1004_1:1_cha=on:cs=on:fe=off:hud=1:i=4:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/4Mi)
% 4.02/2.14 % (23830)Instruction limit reached!
% 4.02/2.14 % (23830)------------------------------
% 4.02/2.14 % (23830)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.14 % (23830)Termination reason: Unknown
% 4.02/2.14 % (23830)Termination phase: shuffling
% 4.02/2.14
% 4.02/2.14 % (23830)Memory used [KB]: 1407
% 4.02/2.14 % (23830)Time elapsed: 0.004 s
% 4.02/2.14 % (23830)Instructions burned: 4 (million)
% 4.02/2.14 % (23830)------------------------------
% 4.02/2.14 % (23830)------------------------------
% 4.02/2.14 % (23831)lrs+1002_1:1_anc=all_dependent:au=on:cbe=off:fde=unused:ntd=on:i=18:si=on:rtra=on_0 on DTF2THF_23713 for (2999ds/18Mi)
% 4.02/2.15 % (23817)First to succeed.
% 4.02/2.15 % (23832)lrs+10_1:1_e2e=on:sd=1:sgt=8:ss=axioms:i=710:si=on:rtra=on_0 on DTF2THF_23713 for (2998ds/710Mi)
% 4.02/2.15 % (23817)Refutation found. Thanks to Tanya!
% 4.02/2.15 % SZS status Theorem for DTF2THF_23713
% 4.02/2.15 % SZS output start Proof for DTF2THF_23713
% 4.02/2.15 thf(type_def_5, type, aexp: $tType).
% 4.02/2.15 thf(type_def_6, type, char: $tType).
% 4.02/2.15 thf(type_def_7, type, list: ($tType) > $tType).
% 4.02/2.15 thf(type_def_8, type, int: $tType).
% 4.02/2.15 thf(type_def_10, type, bexp: $tType).
% 4.02/2.15 thf(type_def_11, type, com: $tType).
% 4.02/2.15 thf(type_def_12, type, product_prod: ($tType * $tType) > $tType).
% 4.02/2.15 thf(type_def_13, type, nat: $tType).
% 4.02/2.15 thf(type_def_14, type, set: ($tType) > $tType).
% 4.02/2.15 thf(func_def_0, type, product_prod: ($tType * $tType) > $tType).
% 4.02/2.15 thf(func_def_1, type, char: $tType).
% 4.02/2.15 thf(func_def_2, type, list: ($tType) > $tType).
% 4.02/2.15 thf(func_def_3, type, bexp: $tType).
% 4.02/2.15 thf(func_def_4, type, aexp: $tType).
% 4.02/2.15 thf(func_def_5, type, set: ($tType) > $tType).
% 4.02/2.15 thf(func_def_6, type, nat: $tType).
% 4.02/2.15 thf(func_def_7, type, int: $tType).
% 4.02/2.15 thf(func_def_8, type, com: $tType).
% 4.02/2.15 thf(func_def_9, type, zero: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_10, type, group_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_11, type, monoid_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_12, type, semigroup_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_13, type, comm_monoid_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_14, type, ab_semigroup_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_15, type, cancel_semigroup_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_16, type, cancel1352612707id_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_17, type, linord219039673up_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_18, type, ordere779506340up_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_19, type, canoni770627133id_add: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_20, type, semiri456707255roduct: !>[X0: $tType]:($o)).
% 4.02/2.15 thf(func_def_21, type, aval: aexp > (list @ char > int) > int).
% 4.02/2.15 thf(func_def_22, type, bval: bexp > (list @ char > int) > $o).
% 4.02/2.15 thf(func_def_23, type, big_big_step: product_prod @ com @ (list @ char > int) > (list @ char > int) > $o).
% 4.02/2.15 thf(func_def_24, type, assign: list @ char > aexp > com).
% 4.02/2.15 thf(func_def_25, type, if: bexp > com > com > com).
% 4.02/2.15 thf(func_def_26, type, skip: com).
% 4.02/2.15 thf(func_def_27, type, seq: com > com > com).
% 4.02/2.15 thf(func_def_28, type, while: bexp > com > com).
% 4.02/2.15 thf(func_def_29, type, case_com: !>[X0: $tType]:(X0 > (list @ char > aexp > X0) > (com > com > X0) > (bexp > com > com > X0) > (bexp > com > X0) > com > X0)).
% 4.02/2.15 thf(func_def_30, type, rec_com: !>[X0: $tType]:(X0 > (list @ char > aexp > X0) > (com > com > X0 > X0 > X0) > (bexp > com > com > X0 > X0 > X0) > (bexp > com > X0 > X0) > com > X0)).
% 4.02/2.15 thf(func_def_31, type, size_com: com > nat).
% 4.02/2.15 thf(func_def_32, type, fun_upd: !>[X0: $tType, X1: $tType]:((X0 > X1) > X0 > X1 > X0 > X1)).
% 4.02/2.15 thf(func_def_33, type, plus_plus: !>[X0: $tType]:(X0 > X0 > X0)).
% 4.02/2.15 thf(func_def_34, type, zero_zero: !>[X0: $tType]:(X0)).
% 4.02/2.15 thf(func_def_35, type, if2: !>[X0: $tType]:($o > X0 > X0 > X0)).
% 4.02/2.15 thf(func_def_36, type, suc: nat > nat).
% 4.02/2.15 thf(func_def_37, type, size_size: !>[X0: $tType]:(X0 > nat)).
% 4.02/2.15 thf(func_def_38, type, product_Pair: !>[X0: $tType, X1: $tType]:(X0 > X1 > product_prod @ X0 @ X1)).
% 4.02/2.15 thf(func_def_39, type, product_curry: !>[X0: $tType, X1: $tType, X2: $tType]:((product_prod @ X0 @ X1 > X2) > X0 > X1 > X2)).
% 4.02/2.15 thf(func_def_40, type, produc2004651681e_prod: !>[X0: $tType, X1: $tType, X2: $tType]:((X0 > X1 > X2) > product_prod @ X0 @ X1 > X2)).
% 4.02/2.15 thf(func_def_41, type, product_rec_prod: !>[X0: $tType, X1: $tType, X2: $tType]:((X0 > X1 > X2) > product_prod @ X0 @ X1 > X2)).
% 4.02/2.15 thf(func_def_42, type, product_case_prod: !>[X0: $tType, X1: $tType, X2: $tType]:((X0 > X1 > X2) > product_prod @ X0 @ X1 > X2)).
% 4.02/2.15 thf(func_def_43, type, product_swap: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > product_prod @ X1 @ X0)).
% 4.02/2.15 thf(func_def_44, type, relati332478480decomp: ((list @ char > int) > (list @ char > int) > $o) > com > com > ((list @ char > int) > (list @ char > int) > $o) > (list @ char > int) > (list @ char > int) > $o).
% 4.02/2.15 thf(func_def_45, type, relati1716060877e_flip: ((list @ char > int) > (list @ char > int) > $o) > (list @ char > int) > (list @ char > int) > $o).
% 4.02/2.15 thf(func_def_46, type, relati1010904253t_back: !>[X0: $tType]:(((list @ char > int) > X0 > $o) > bexp > com > nat > (list @ char > int) > X0 > $o)).
% 4.02/2.15 thf(func_def_47, type, relati1493963588_hoare: ((list @ char > int) > (list @ char > int) > $o) > com > com > ((list @ char > int) > (list @ char > int) > $o) > $o).
% 4.02/2.15 thf(func_def_48, type, relati167478067_valid: ((list @ char > int) > (list @ char > int) > $o) > com > com > ((list @ char > int) > (list @ char > int) > $o) > $o).
% 4.02/2.15 thf(func_def_49, type, collect: !>[X0: $tType]:((X0 > $o) > set @ X0)).
% 4.02/2.15 thf(func_def_50, type, image: !>[X0: $tType, X1: $tType]:((X0 > X1) > set @ X0 > set @ X1)).
% 4.02/2.15 thf(func_def_51, type, member: !>[X0: $tType]:(X0 > set @ X0 > $o)).
% 4.02/2.15 thf(func_def_52, type, p: (list @ char > int) > (list @ char > int) > $o).
% 4.02/2.15 thf(func_def_53, type, q: (list @ char > int) > (list @ char > int) > $o).
% 4.02/2.15 thf(func_def_54, type, c: com).
% 4.02/2.15 thf(func_def_55, type, c2: com).
% 4.02/2.15 thf(func_def_75, type, sP0: bexp > com > (list @ char > int) > (nat > (list @ char > int) > (list @ char > int) > $o) > nat > com > (list @ char > int) > $o).
% 4.02/2.15 thf(func_def_76, type, sK1: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X3)).
% 4.02/2.15 thf(func_def_77, type, sK2: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X2)).
% 4.02/2.15 thf(func_def_78, type, sK3: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X1)).
% 4.02/2.15 thf(func_def_79, type, sK4: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:((product_prod @ X3 @ product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X0)).
% 4.02/2.15 thf(func_def_80, type, sK5: !>[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)).
% 4.02/2.15 thf(func_def_81, type, sK6: !>[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)).
% 4.02/2.15 thf(func_def_82, 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) > X2)).
% 4.02/2.15 thf(func_def_83, 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) > X1)).
% 4.02/2.15 thf(func_def_84, 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) > X0)).
% 4.02/2.15 thf(func_def_85, type, sK10: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X0)).
% 4.02/2.15 thf(func_def_86, type, sK11: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X1)).
% 4.02/2.15 thf(func_def_87, type, sK12: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_88, type, sK13: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_89, type, sK14: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_90, type, sK15: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_91, type, sK16: !>[X0: $tType, X1: $tType, X2: $tType]:((product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X2)).
% 4.02/2.15 thf(func_def_92, type, sK17: !>[X0: $tType, X1: $tType, X2: $tType]:((product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X1)).
% 4.02/2.15 thf(func_def_93, type, sK18: !>[X0: $tType, X1: $tType, X2: $tType]:((product_prod @ X2 @ product_prod @ X1 @ X0 > $o) > X0)).
% 4.02/2.15 thf(func_def_94, type, sK19: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_95, type, sK20: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_96, type, sK21: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_97, type, sK22: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_98, type, sK23: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_99, type, sK24: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_100, type, sK25: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_101, type, sK26: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_102, type, sK27: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_103, type, sK28: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_104, type, sK29: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_105, type, sK30: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_106, type, sK31: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_107, type, sK32: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_108, type, sK33: bexp > com > (list @ char > int) > (nat > (list @ char > int) > (list @ char > int) > $o) > nat > com > (list @ char > int) > list @ char > int).
% 4.02/2.15 thf(func_def_109, type, sK34: bexp > com > (list @ char > int) > (nat > (list @ char > int) > (list @ char > int) > $o) > nat > com > (list @ char > int) > list @ char > int).
% 4.02/2.15 thf(func_def_110, type, sK35: com > ((list @ char > int) > (list @ char > int) > $o) > com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_111, type, sK36: com > ((list @ char > int) > (list @ char > int) > $o) > com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_112, type, sK37: com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > nat).
% 4.02/2.15 thf(func_def_113, type, sK38: com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_114, type, sK39: com > bexp > nat > (nat > (list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_115, type, sK40: (list @ char > int) > (list @ char > int) > com > com > list @ char > int).
% 4.02/2.15 thf(func_def_116, type, sK41: !>[X0: $tType, X1: $tType, X2: $tType]:(product_prod @ X0 @ product_prod @ X1 @ X2 > X0)).
% 4.02/2.15 thf(func_def_117, type, sK42: !>[X0: $tType, X1: $tType, X2: $tType]:(product_prod @ X0 @ product_prod @ X1 @ X2 > X1)).
% 4.02/2.15 thf(func_def_118, type, sK43: !>[X0: $tType, X1: $tType, X2: $tType]:(product_prod @ X0 @ product_prod @ X1 @ X2 > X2)).
% 4.02/2.15 thf(func_def_119, type, sK44: !>[X0: $tType, X1: $tType]:((X1 > X0) > (X1 > X0) > X1)).
% 4.02/2.15 thf(func_def_120, type, sK45: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X0)).
% 4.02/2.15 thf(func_def_121, type, sK46: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X1)).
% 4.02/2.15 thf(func_def_122, type, sK47: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X2)).
% 4.02/2.15 thf(func_def_123, type, sK48: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ X3 > X3)).
% 4.02/2.15 thf(func_def_124, type, sK49: !>[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)).
% 4.02/2.15 thf(func_def_125, type, sK50: !>[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)).
% 4.02/2.15 thf(func_def_126, type, sK51: !>[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)).
% 4.02/2.15 thf(func_def_127, type, sK52: !>[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)).
% 4.02/2.15 thf(func_def_128, type, sK53: !>[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)).
% 4.02/2.15 thf(func_def_129, type, sK54: !>[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)).
% 4.02/2.15 thf(func_def_130, type, sK55: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_131, type, sK56: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_132, type, sK57: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_133, type, sK58: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_134, type, sK59: !>[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)).
% 4.02/2.15 thf(func_def_135, type, sK60: !>[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)).
% 4.02/2.15 thf(func_def_136, type, sK61: !>[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)).
% 4.02/2.15 thf(func_def_137, type, sK62: !>[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)).
% 4.02/2.15 thf(func_def_138, 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 > X4)).
% 4.02/2.15 thf(func_def_139, 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 > X5)).
% 4.02/2.15 thf(func_def_140, 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 > X6)).
% 4.02/2.15 thf(func_def_141, type, sK66: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X1)).
% 4.02/2.15 thf(func_def_142, type, sK67: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X0)).
% 4.02/2.15 thf(func_def_143, type, sK68: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X1)).
% 4.02/2.15 thf(func_def_144, type, sK69: !>[X0: $tType, X1: $tType]:((product_prod @ X1 @ X0 > $o) > X0)).
% 4.02/2.15 thf(func_def_145, type, sK70: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X0)).
% 4.02/2.15 thf(func_def_146, type, sK71: !>[X0: $tType, X1: $tType]:(product_prod @ X0 @ X1 > X1)).
% 4.02/2.15 thf(func_def_147, type, sK72: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_148, type, sK73: com > ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_149, type, sK74: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_150, type, sK75: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_151, type, sK76: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X0)).
% 4.02/2.15 thf(func_def_152, type, sK77: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X1)).
% 4.02/2.15 thf(func_def_153, type, sK78: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X2)).
% 4.02/2.15 thf(func_def_154, type, sK79: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X3)).
% 4.02/2.15 thf(func_def_155, type, sK80: !>[X0: $tType, X1: $tType, X2: $tType, X3: $tType, X4: $tType]:(product_prod @ X0 @ product_prod @ X1 @ product_prod @ X2 @ product_prod @ X3 @ X4 > X4)).
% 4.02/2.15 thf(func_def_156, type, sK81: !>[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)).
% 4.02/2.15 thf(func_def_157, type, sK82: !>[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)).
% 4.02/2.15 thf(func_def_158, type, sK83: !>[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)).
% 4.02/2.15 thf(func_def_159, type, sK84: !>[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)).
% 4.02/2.15 thf(func_def_160, type, sK85: !>[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)).
% 4.02/2.15 thf(func_def_161, type, sK86: !>[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)).
% 4.02/2.15 thf(func_def_162, type, sK87: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_163, type, sK88: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_164, type, sK89: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_165, type, sK90: ((list @ char > int) > (list @ char > int) > $o) > ((list @ char > int) > (list @ char > int) > $o) > list @ char > int).
% 4.02/2.15 thf(func_def_166, type, sK91: !>[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)).
% 4.02/2.15 thf(func_def_167, type, sK92: !>[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)).
% 4.02/2.15 thf(func_def_168, type, sK93: !>[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)).
% 4.02/2.15 thf(func_def_169, type, sK94: !>[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)).
% 4.02/2.15 thf(func_def_170, type, sK95: !>[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)).
% 4.02/2.15 thf(func_def_171, type, sK96: !>[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)).
% 4.02/2.15 thf(func_def_172, type, sK97: !>[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)).
% 4.02/2.15 thf(func_def_173, type, sK98: (list @ char > int) > (list @ char > int) > com > bexp > list @ char > int).
% 4.02/2.15 thf(func_def_174, type, sK99: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_175, type, sK100: com > com > list @ char > int).
% 4.02/2.15 thf(func_def_177, type, ph102: !>[X0: $tType]:(X0)).
% 4.02/2.15 thf(f1066,plain,(
% 4.02/2.15 $false),
% 4.02/2.15 inference(avatar_sat_refutation,[status(thm)],[f1001,f1002,f1003,f1017,f1031,f1065])).
% 4.02/2.15 thf(f1065,plain,(
% 4.02/2.15 ~spl101_1 | ~spl101_2 | spl101_3),
% 4.02/2.15 inference(avatar_contradiction_clause,[status(thm)],[f1064])).
% 4.02/2.15 thf(f1064,plain,(
% 4.02/2.15 $false | (~spl101_1 | ~spl101_2 | spl101_3)),
% 4.02/2.15 inference(subsumption_resolution,[status(thm)],[f1063,f991])).
% 4.02/2.15 thf(f991,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) = $true) | ~spl101_1),
% 4.02/2.15 inference(avatar_component_clause,[status(thm)],[f990])).
% 4.02/2.15 thf(f990,definition,(
% 4.02/2.15 spl101_1 <=> ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) = $true)),
% 4.02/2.15 introduced(definition,[new_symbols(naming,[spl101_1])],[avatar_definition])).
% 4.02/2.15 thf(f1063,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true) | (~spl101_2 | spl101_3)),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1060])).
% 4.02/2.15 thf(f1060,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true) | ($true != $true) | (~spl101_2 | spl101_3)),
% 4.02/2.15 inference(superposition,[status(thm)],[f1050,f995])).
% 4.02/2.15 thf(f995,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) = $true) | ~spl101_2),
% 4.02/2.15 inference(avatar_component_clause,[status(thm)],[f994])).
% 4.02/2.15 thf(f994,definition,(
% 4.02/2.15 spl101_2 <=> ((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) = $true)),
% 4.02/2.15 introduced(definition,[new_symbols(naming,[spl101_2])],[avatar_definition])).
% 4.02/2.15 thf(f1050,plain,(
% 4.02/2.15 ( ! [X0 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati1493963588_hoare @ p @ c @ skip @ X0)) | ((relati1493963588_hoare @ X0 @ skip @ c2 @ q) != $true)) ) | spl101_3),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1048])).
% 4.02/2.15 thf(f1048,plain,(
% 4.02/2.15 ( ! [X0 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati1493963588_hoare @ p @ c @ skip @ X0)) | ((relati1493963588_hoare @ X0 @ skip @ c2 @ q) != $true) | ($true != $true)) ) | spl101_3),
% 4.02/2.15 inference(superposition,[status(thm)],[f1043,f962])).
% 4.02/2.15 thf(f962,plain,(
% 4.02/2.15 ( ! [X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o,X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com] : (($true = (relati167478067_valid @ X0 @ X1 @ X2 @ X3)) | ((relati1493963588_hoare @ X0 @ X1 @ X2 @ X3) != $true)) )),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f726])).
% 4.02/2.15 thf(f726,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : (($true = (relati167478067_valid @ X0 @ X1 @ X2 @ X3)) | ((relati1493963588_hoare @ X0 @ X1 @ X2 @ X3) != $true))),
% 4.02/2.15 inference(ennf_transformation,[status(thm)],[f484])).
% 4.02/2.15 thf(f484,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : (((relati1493963588_hoare @ X0 @ X1 @ X2 @ X3) = $true) => ($true = (relati167478067_valid @ X0 @ X1 @ X2 @ X3)))),
% 4.02/2.15 inference(fool_elimination,[status(thm)],[f483])).
% 4.02/2.15 thf(f483,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : ((relati1493963588_hoare @ X0 @ X1 @ X2 @ X3) => (relati167478067_valid @ X0 @ X1 @ X2 @ X3))),
% 4.02/2.15 inference(rectify,[status(thm)],[f1])).
% 4.02/2.15 thf(f1,axiom,(
% 4.02/2.15 ! [X4 : (list @ char > int) > (list @ char > int) > $o,X5 : com,X6 : com,X7 : (list @ char > int) > (list @ char > int) > $o] : ((relati1493963588_hoare @ X4 @ X5 @ X6 @ X7) => (relati167478067_valid @ X4 @ X5 @ X6 @ X7))),
% 4.02/2.15 file('/export/starexec/sandbox2/tmp/tmp.UcMyW68zoN/DTF2THF_23713.p',fact_0_soundness)).
% 4.02/2.15 thf(f1043,plain,(
% 4.02/2.15 ( ! [X0 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati167478067_valid @ X0 @ skip @ c2 @ q)) | ($true != (relati1493963588_hoare @ p @ c @ skip @ X0))) ) | spl101_3),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1040])).
% 4.02/2.15 thf(f1040,plain,(
% 4.02/2.15 ( ! [X0 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati1493963588_hoare @ p @ c @ skip @ X0)) | ($true != $true) | ($true != (relati167478067_valid @ X0 @ skip @ c2 @ q))) ) | spl101_3),
% 4.02/2.15 inference(superposition,[status(thm)],[f1036,f962])).
% 4.02/2.15 thf(f1036,plain,(
% 4.02/2.15 ( ! [X0 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati167478067_valid @ p @ c @ skip @ X0)) | ($true != (relati167478067_valid @ X0 @ skip @ c2 @ q))) ) | spl101_3),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1034])).
% 4.02/2.15 thf(f1034,plain,(
% 4.02/2.15 ( ! [X0 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati167478067_valid @ p @ c @ skip @ X0)) | ($true != $true) | ($true != (relati167478067_valid @ X0 @ skip @ c2 @ q))) ) | spl101_3),
% 4.02/2.15 inference(superposition,[status(thm)],[f1033,f858])).
% 4.02/2.15 thf(f858,plain,(
% 4.02/2.15 ( ! [X2 : (list @ char > int) > (list @ char > int) > $o,X3 : com,X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X4 : (list @ char > int) > (list @ char > int) > $o] : (($true = (relati167478067_valid @ X0 @ X1 @ X3 @ X4)) | ($true != (relati167478067_valid @ X0 @ X1 @ skip @ X2)) | ($true != (relati167478067_valid @ X2 @ skip @ X3 @ X4))) )),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f721])).
% 4.02/2.15 thf(f721,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : (list @ char > int) > (list @ char > int) > $o,X3 : com,X4 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati167478067_valid @ X0 @ X1 @ skip @ X2)) | ($true = (relati167478067_valid @ X0 @ X1 @ X3 @ X4)) | ($true != (relati167478067_valid @ X2 @ skip @ X3 @ X4)))),
% 4.02/2.15 inference(flattening,[status(thm)],[f720])).
% 4.02/2.15 thf(f720,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : (list @ char > int) > (list @ char > int) > $o,X3 : com,X4 : (list @ char > int) > (list @ char > int) > $o] : (($true = (relati167478067_valid @ X0 @ X1 @ X3 @ X4)) | (($true != (relati167478067_valid @ X2 @ skip @ X3 @ X4)) | ($true != (relati167478067_valid @ X0 @ X1 @ skip @ X2))))),
% 4.02/2.15 inference(ennf_transformation,[status(thm)],[f452])).
% 4.02/2.15 thf(f452,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : (list @ char > int) > (list @ char > int) > $o,X3 : com,X4 : (list @ char > int) > (list @ char > int) > $o] : ((($true = (relati167478067_valid @ X2 @ skip @ X3 @ X4)) & ($true = (relati167478067_valid @ X0 @ X1 @ skip @ X2))) => ($true = (relati167478067_valid @ X0 @ X1 @ X3 @ X4)))),
% 4.02/2.15 inference(fool_elimination,[status(thm)],[f451])).
% 4.02/2.15 thf(f451,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : (list @ char > int) > (list @ char > int) > $o,X3 : com,X4 : (list @ char > int) > (list @ char > int) > $o] : (((relati167478067_valid @ X0 @ X1 @ skip @ X2) & (relati167478067_valid @ X2 @ skip @ X3 @ X4)) => (relati167478067_valid @ X0 @ X1 @ X3 @ X4))),
% 4.02/2.15 inference(rectify,[status(thm)],[f10])).
% 4.02/2.15 thf(f10,axiom,(
% 4.02/2.15 ! [X4 : (list @ char > int) > (list @ char > int) > $o,X5 : com,X18 : (list @ char > int) > (list @ char > int) > $o,X6 : com,X7 : (list @ char > int) > (list @ char > int) > $o] : (((relati167478067_valid @ X4 @ X5 @ skip @ X18) & (relati167478067_valid @ X18 @ skip @ X6 @ X7)) => (relati167478067_valid @ X4 @ X5 @ X6 @ X7))),
% 4.02/2.15 file('/export/starexec/sandbox2/tmp/tmp.UcMyW68zoN/DTF2THF_23713.p',fact_9_ir__valid__decomp2)).
% 4.02/2.15 thf(f1033,plain,(
% 4.02/2.15 ($true != (relati167478067_valid @ p @ c @ c2 @ q)) | spl101_3),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1032])).
% 4.02/2.15 thf(f1032,plain,(
% 4.02/2.15 ($true != (relati167478067_valid @ p @ c @ c2 @ q)) | ($true != $true) | spl101_3),
% 4.02/2.15 inference(superposition,[status(thm)],[f1000,f905])).
% 4.02/2.15 thf(f905,plain,(
% 4.02/2.15 ( ! [X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o,X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com] : (((relati1493963588_hoare @ X0 @ X1 @ X2 @ X3) = $true) | ($true != (relati167478067_valid @ X0 @ X1 @ X2 @ X3))) )),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f761])).
% 4.02/2.15 thf(f761,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati167478067_valid @ X0 @ X1 @ X2 @ X3)) | ((relati1493963588_hoare @ X0 @ X1 @ X2 @ X3) = $true))),
% 4.02/2.15 inference(ennf_transformation,[status(thm)],[f652])).
% 4.02/2.15 thf(f652,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : (($true = (relati167478067_valid @ X0 @ X1 @ X2 @ X3)) => ((relati1493963588_hoare @ X0 @ X1 @ X2 @ X3) = $true))),
% 4.02/2.15 inference(fool_elimination,[status(thm)],[f651])).
% 4.02/2.15 thf(f651,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : ((relati167478067_valid @ X0 @ X1 @ X2 @ X3) => (relati1493963588_hoare @ X0 @ X1 @ X2 @ X3))),
% 4.02/2.15 inference(rectify,[status(thm)],[f2])).
% 4.02/2.15 thf(f2,axiom,(
% 4.02/2.15 ! [X4 : (list @ char > int) > (list @ char > int) > $o,X5 : com,X6 : com,X7 : (list @ char > int) > (list @ char > int) > $o] : ((relati167478067_valid @ X4 @ X5 @ X6 @ X7) => (relati1493963588_hoare @ X4 @ X5 @ X6 @ X7))),
% 4.02/2.15 file('/export/starexec/sandbox2/tmp/tmp.UcMyW68zoN/DTF2THF_23713.p',fact_1_completeness)).
% 4.02/2.15 thf(f1000,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true) | spl101_3),
% 4.02/2.15 inference(avatar_component_clause,[status(thm)],[f998])).
% 4.02/2.15 thf(f998,definition,(
% 4.02/2.15 spl101_3 <=> ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true)),
% 4.02/2.15 introduced(definition,[new_symbols(naming,[spl101_3])],[avatar_definition])).
% 4.02/2.15 thf(f1031,plain,(
% 4.02/2.15 spl101_2 | ~spl101_3),
% 4.02/2.15 inference(avatar_contradiction_clause,[status(thm)],[f1030])).
% 4.02/2.15 thf(f1030,plain,(
% 4.02/2.15 $false | (spl101_2 | ~spl101_3)),
% 4.02/2.15 inference(subsumption_resolution,[status(thm)],[f1028,f999])).
% 4.02/2.15 thf(f999,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true) | ~spl101_3),
% 4.02/2.15 inference(avatar_component_clause,[status(thm)],[f998])).
% 4.02/2.15 thf(f1028,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true) | spl101_2),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1027])).
% 4.02/2.15 thf(f1027,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true) | ($true != $true) | spl101_2),
% 4.02/2.15 inference(superposition,[status(thm)],[f1025,f962])).
% 4.02/2.15 thf(f1025,plain,(
% 4.02/2.15 ($true != (relati167478067_valid @ p @ c @ c2 @ q)) | spl101_2),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1020])).
% 4.02/2.15 thf(f1020,plain,(
% 4.02/2.15 ($true != $true) | ($true != (relati167478067_valid @ p @ c @ c2 @ q)) | spl101_2),
% 4.02/2.15 inference(superposition,[status(thm)],[f1019,f963])).
% 4.02/2.15 thf(f963,plain,(
% 4.02/2.15 ( ! [X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o,X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com] : (((relati167478067_valid @ X0 @ X1 @ skip @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3)) = $true) | ($true != (relati167478067_valid @ X0 @ X1 @ X2 @ X3))) )),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f715])).
% 4.02/2.15 thf(f715,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : (($true != (relati167478067_valid @ X0 @ X1 @ X2 @ X3)) | (($true = (relati167478067_valid @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3) @ skip @ X2 @ X3)) & ((relati167478067_valid @ X0 @ X1 @ skip @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3)) = $true)))),
% 4.02/2.15 inference(ennf_transformation,[status(thm)],[f366])).
% 4.02/2.15 thf(f366,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : (($true = (relati167478067_valid @ X0 @ X1 @ X2 @ X3)) => (($true = (relati167478067_valid @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3) @ skip @ X2 @ X3)) & ((relati167478067_valid @ X0 @ X1 @ skip @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3)) = $true)))),
% 4.02/2.15 inference(fool_elimination,[status(thm)],[f365])).
% 4.02/2.15 thf(f365,plain,(
% 4.02/2.15 ! [X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com,X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o] : ((relati167478067_valid @ X0 @ X1 @ X2 @ X3) => ((relati167478067_valid @ X0 @ X1 @ skip @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3)) & (relati167478067_valid @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3) @ skip @ X2 @ X3)))),
% 4.02/2.15 inference(rectify,[status(thm)],[f9])).
% 4.02/2.15 thf(f9,axiom,(
% 4.02/2.15 ! [X4 : (list @ char > int) > (list @ char > int) > $o,X5 : com,X6 : com,X7 : (list @ char > int) > (list @ char > int) > $o] : ((relati167478067_valid @ X4 @ X5 @ X6 @ X7) => ((relati167478067_valid @ X4 @ X5 @ skip @ (relati332478480decomp @ X4 @ X5 @ X6 @ X7)) & (relati167478067_valid @ (relati332478480decomp @ X4 @ X5 @ X6 @ X7) @ skip @ X6 @ X7)))),
% 4.02/2.15 file('/export/starexec/sandbox2/tmp/tmp.UcMyW68zoN/DTF2THF_23713.p',fact_8_ir__valid__decomp1)).
% 4.02/2.15 thf(f1019,plain,(
% 4.02/2.15 ($true != (relati167478067_valid @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q))) | spl101_2),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1018])).
% 4.02/2.15 thf(f1018,plain,(
% 4.02/2.15 ($true != (relati167478067_valid @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q))) | ($true != $true) | spl101_2),
% 4.02/2.15 inference(superposition,[status(thm)],[f996,f905])).
% 4.02/2.15 thf(f996,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) != $true) | spl101_2),
% 4.02/2.15 inference(avatar_component_clause,[status(thm)],[f994])).
% 4.02/2.15 thf(f1017,plain,(
% 4.02/2.15 spl101_1 | ~spl101_3),
% 4.02/2.15 inference(avatar_contradiction_clause,[status(thm)],[f1016])).
% 4.02/2.15 thf(f1016,plain,(
% 4.02/2.15 $false | (spl101_1 | ~spl101_3)),
% 4.02/2.15 inference(subsumption_resolution,[status(thm)],[f1015,f999])).
% 4.02/2.15 thf(f1015,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true) | spl101_1),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1013])).
% 4.02/2.15 thf(f1013,plain,(
% 4.02/2.15 ($true != $true) | ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true) | spl101_1),
% 4.02/2.15 inference(superposition,[status(thm)],[f1011,f962])).
% 4.02/2.15 thf(f1011,plain,(
% 4.02/2.15 ($true != (relati167478067_valid @ p @ c @ c2 @ q)) | spl101_1),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1006])).
% 4.02/2.15 thf(f1006,plain,(
% 4.02/2.15 ($true != $true) | ($true != (relati167478067_valid @ p @ c @ c2 @ q)) | spl101_1),
% 4.02/2.15 inference(superposition,[status(thm)],[f1005,f964])).
% 4.02/2.15 thf(f964,plain,(
% 4.02/2.15 ( ! [X2 : com,X3 : (list @ char > int) > (list @ char > int) > $o,X0 : (list @ char > int) > (list @ char > int) > $o,X1 : com] : (($true = (relati167478067_valid @ (relati332478480decomp @ X0 @ X1 @ X2 @ X3) @ skip @ X2 @ X3)) | ($true != (relati167478067_valid @ X0 @ X1 @ X2 @ X3))) )),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f715])).
% 4.02/2.15 thf(f1005,plain,(
% 4.02/2.15 ((relati167478067_valid @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true) | spl101_1),
% 4.02/2.15 inference(trivial_inequality_removal,[status(thm)],[f1004])).
% 4.02/2.15 thf(f1004,plain,(
% 4.02/2.15 ($true != $true) | ((relati167478067_valid @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true) | spl101_1),
% 4.02/2.15 inference(superposition,[status(thm)],[f992,f905])).
% 4.02/2.15 thf(f992,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true) | spl101_1),
% 4.02/2.15 inference(avatar_component_clause,[status(thm)],[f990])).
% 4.02/2.15 thf(f1003,plain,(
% 4.02/2.15 spl101_3 | spl101_1),
% 4.02/2.15 inference(avatar_split_clause,[status(thm)],[f955,f990,f998])).
% 4.02/2.15 thf(f955,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) = $true) | ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true)),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f849])).
% 4.02/2.15 thf(f849,plain,(
% 4.02/2.15 (((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) != $true) | ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true) | ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true)) & ((((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) = $true) & ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) = $true)) | ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true))),
% 4.02/2.15 inference(flattening,[status(thm)],[f848])).
% 4.02/2.15 thf(f848,plain,(
% 4.02/2.15 ((((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) != $true) | ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true)) | ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true)) & ((((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) = $true) & ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) = $true)) | ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true))),
% 4.02/2.15 inference(nnf_transformation,[status(thm)],[f710])).
% 4.02/2.15 thf(f710,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true) <~> (((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) = $true) & ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) = $true))),
% 4.02/2.15 inference(ennf_transformation,[status(thm)],[f426])).
% 4.02/2.15 thf(f426,plain,(
% 4.02/2.15 ~((((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) = $true) & ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) = $true)) <=> ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true))),
% 4.02/2.15 inference(fool_elimination,[status(thm)],[f425])).
% 4.02/2.15 thf(f425,plain,(
% 4.02/2.15 ~((relati1493963588_hoare @ p @ c @ c2 @ q) = (relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) & (relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q))),
% 4.02/2.15 inference(rectify,[status(thm)],[f281])).
% 4.02/2.15 thf(f281,negated_conjecture,(
% 4.02/2.15 ~((relati1493963588_hoare @ p @ c @ c2 @ q) = (relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) & (relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q))),
% 4.02/2.15 inference(negated_conjecture,[status(cth)],[f280])).
% 4.02/2.15 thf(f280,conjecture,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) = (relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) & (relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q))),
% 4.02/2.15 file('/export/starexec/sandbox2/tmp/tmp.UcMyW68zoN/DTF2THF_23713.p',conj_0)).
% 4.02/2.15 thf(f1002,plain,(
% 4.02/2.15 spl101_3 | spl101_2),
% 4.02/2.15 inference(avatar_split_clause,[status(thm)],[f956,f994,f998])).
% 4.02/2.15 thf(f956,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ c2 @ q) = $true) | ((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) = $true)),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f849])).
% 4.02/2.15 thf(f1001,plain,(
% 4.02/2.15 ~spl101_1 | ~spl101_2 | ~spl101_3),
% 4.02/2.15 inference(avatar_split_clause,[status(thm)],[f957,f998,f994,f990])).
% 4.02/2.15 thf(f957,plain,(
% 4.02/2.15 ((relati1493963588_hoare @ p @ c @ skip @ (relati332478480decomp @ p @ c @ c2 @ q)) != $true) | ((relati1493963588_hoare @ p @ c @ c2 @ q) != $true) | ((relati1493963588_hoare @ (relati332478480decomp @ p @ c @ c2 @ q) @ skip @ c2 @ q) != $true)),
% 4.02/2.15 inference(cnf_transformation,[status(thm)],[f849])).
% 4.02/2.15 % SZS output end Proof for DTF2THF_23713
% 4.02/2.15 % (23817)------------------------------
% 4.02/2.15 % (23817)Version: Vampire 4.8 (commit 7b44b1c2f on 2025-07-15 09:50:17 +0100)
% 4.02/2.15 % (23817)Termination reason: Refutation
% 4.02/2.15
% 4.02/2.15 % (23817)Memory used [KB]: 7164
% 4.02/2.15 % (23817)Time elapsed: 0.086 s
% 4.02/2.15 % (23817)Instructions burned: 152 (million)
% 4.02/2.15 % (23817)------------------------------
% 4.02/2.15 % (23817)------------------------------
% 4.02/2.15 % (23811)Success in time 0.123 s
%------------------------------------------------------------------------------