TPTP Problem File: COM255_1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : COM255_1 : TPTP v9.3.1. Released v9.3.0.
% Domain   : Computing Theory
% Problem  : QL-Preservation-qcond-e-isSomeExp-True
% Version  : Especial.
% English  :

% Refs     : [GE+15] Grewe et al. (2015), Type Systems for the Masses: Deri
%          : [GE+18] Grewe et al. (2018), System Description: An Infrastruc
%          : [GE+18] Grewe et al. (2018), Exploration of Language Specifica
%          : [Gre19] Grewe (2019), Automating Type Soundness Proofs for Dom
%          : [Gre24] Grewe (2015), Email to Geoff Sutcliffe
% Source   : [Gre24]
% Names    : QL-Preservation-qcond-e-isSomeExp-True [Gre24]

% Status   : Theorem
% Rating   : 0.33 v9.3.0
% Syntax   : Number of formulae    :  510 ( 185 unt; 146 typ;   0 def)
%            Number of atoms       : 1149 ( 974 equ)
%            Maximal formula atoms :  100 (   3 avg)
%            Number of connectives : 1084 ( 299   ~; 209   |; 448   &)
%                                         (   0 <=>; 128  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   32 (   5 avg)
%            Maximal term depth    :    7 (   1 avg)
%            Number of types       :   27 (  26 usr)
%            Number of type conns  :  142 (  86   >;  56   *;   0   +;   0  <<)
%            Number of predicates  :   10 (   9 usr;   0 prp; 1-3 aty)
%            Number of functors    :  111 ( 111 usr;  34 con; 0-4 aty)
%            Number of variables   : 1307 ( 943   !; 364   ?;1307   :)
% SPC      : TF0_THM_EQU_NAR_NDT

% Comments :
%------------------------------------------------------------------------------
tff('Entry_type',type,
    vEntry: $tType ).

tff('YN_type',type,
    vYN: $tType ).

tff('MapConf_type',type,
    vMapConf: $tType ).

tff('OptAType_type',type,
    vOptAType: $tType ).

tff('ATMap_type',type,
    vATMap: $tType ).

tff('Questionnaire_type',type,
    vQuestionnaire: $tType ).

tff('OptMapConf_type',type,
    vOptMapConf: $tType ).

tff('QConf_type',type,
    vQConf: $tType ).

tff(string_type,type,
    vstring: $tType ).

tff(char_type,type,
    vchar: $tType ).

tff('Aval_type',type,
    vAval: $tType ).

tff('OptQConf_type',type,
    vOptQConf: $tType ).

tff('OptQuestion_type',type,
    vOptQuestion: $tType ).

tff('AnsMap_type',type,
    vAnsMap: $tType ).

tff('Exp_type',type,
    vExp: $tType ).

tff('QMap_type',type,
    vQMap: $tType ).

tff('QID_type',type,
    vQID: $tType ).

tff('Label_type',type,
    vLabel: $tType ).

tff('OptAval_type',type,
    vOptAval: $tType ).

tff(nat_type,type,
    vnat: $tType ).

tff('OptExp_type',type,
    vOptExp: $tType ).

tff('GID_type',type,
    vGID: $tType ).

tff('ATList_type',type,
    vATList: $tType ).

tff('BinOpT_type',type,
    vBinOpT: $tType ).

tff('UnOpT_type',type,
    vUnOpT: $tType ).

tff('AType_type',type,
    vAType: $tType ).

tff(constant_type,type,
    vconstant: vAval > vExp ).

tff(qmempty_type,type,
    vqmempty: vQMap ).

tff(question_type,type,
    vquestion: ( vQID * vLabel * vAType ) > vEntry ).

tff(someMapConf_type,type,
    vsomeMapConf: vMapConf > vOptMapConf ).

tff(someExp_type,type,
    vsomeExp: vExp > vOptExp ).

tff(subop_type,type,
    vsubop: vBinOpT ).

tff(qcond_type,type,
    vqcond: ( vExp * vQuestionnaire * vQuestionnaire ) > vQuestionnaire ).

tff(andop_type,type,
    vandop: vBinOpT ).

tff(notop_type,type,
    vnotop: vUnOpT ).

tff('Num_type',type,
    vNum: vnat > vAval ).

tff(noAType_type,type,
    vnoAType: vOptAType ).

tff(yes_type,type,
    vyes: vYN ).

tff('T_type',type,
    vT: vstring > vAval ).

tff('Number_type',type,
    vNumber: vAType ).

tff(divop_type,type,
    vdivop: vBinOpT ).

tff(zero_type,type,
    vzero: vnat ).

tff(succ_type,type,
    vsucc: vnat > vnat ).

tff(abind_type,type,
    vabind: ( vQID * vAval * vAnsMap ) > vAnsMap ).

tff(noAval_type,type,
    vnoAval: vOptAval ).

tff('YesNo_type',type,
    vYesNo: vAType ).

tff(defquestion_type,type,
    vdefquestion: ( vQID * vLabel * vAType ) > vEntry ).

tff(unop_type,type,
    vunop: ( vUnOpT * vExp ) > vExp ).

tff(aempty_type,type,
    vaempty: vAnsMap ).

tff(atempty_type,type,
    vatempty: vATList ).

tff(scons_type,type,
    vscons: ( vchar * vstring ) > vstring ).

tff(qseq_type,type,
    vqseq: ( vQuestionnaire * vQuestionnaire ) > vQuestionnaire ).

tff(mulop_type,type,
    vmulop: vBinOpT ).

tff(qempty_type,type,
    vqempty: vQuestionnaire ).

tff(someQConf_type,type,
    vsomeQConf: vQConf > vOptQConf ).

tff(noQConf_type,type,
    vnoQConf: vOptQConf ).

tff(noExp_type,type,
    vnoExp: vOptExp ).

tff(binop_type,type,
    vbinop: ( vExp * vBinOpT * vExp ) > vExp ).

tff('B_type',type,
    vB: vYN > vAval ).

tff('QC_type',type,
    vQC: ( vAnsMap * vQMap * vQuestionnaire ) > vQConf ).

tff(orop_type,type,
    vorop: vBinOpT ).

tff(eqop_type,type,
    veqop: vBinOpT ).

tff(atcons_type,type,
    vatcons: ( vAType * vATList ) > vATList ).

tff('Text_type',type,
    vText: vAType ).

tff(someAval_type,type,
    vsomeAval: vAval > vOptAval ).

tff(qsingle_type,type,
    vqsingle: vEntry > vQuestionnaire ).

tff('MC_type',type,
    vMC: ( vATMap * vATMap ) > vMapConf ).

tff(addop_type,type,
    vaddop: vBinOpT ).

tff(someQuestion_type,type,
    vsomeQuestion: ( vQID * vLabel * vAType ) > vOptQuestion ).

tff(ltop_type,type,
    vltop: vBinOpT ).

tff(qvar_type,type,
    vqvar: vQID > vExp ).

tff(noMapConf_type,type,
    vnoMapConf: vOptMapConf ).

tff(atmbind_type,type,
    vatmbind: ( vQID * vAType * vATMap ) > vATMap ).

tff(gtop_type,type,
    vgtop: vBinOpT ).

tff(sempty_type,type,
    vsempty: vstring ).

tff(qmbind_type,type,
    vqmbind: ( vQID * vLabel * vAType * vQMap ) > vQMap ).

tff(ask_type,type,
    vask: vQID > vEntry ).

tff(someAType_type,type,
    vsomeAType: vAType > vOptAType ).

tff(noQuestion_type,type,
    vnoQuestion: vOptQuestion ).

tff(q1_type,type,
    vq1: vQuestionnaire ).

tff(qgroup_type,type,
    vqgroup: ( vGID * vQuestionnaire ) > vQuestionnaire ).

tff(atmempty_type,type,
    vatmempty: vATMap ).

tff(no_type,type,
    vno: vYN ).

tff(value_type,type,
    vvalue: ( vQID * vAType * vExp ) > vEntry ).

tff(q2_type,type,
    vq2: vQuestionnaire ).

tff(getAnswer_type,type,
    vgetAnswer: ( vLabel * vAType ) > vAval ).

tff(echeck_type,type,
    vecheck: ( vATMap * vExp ) > vOptAType ).

tff(getAM_type,type,
    vgetAM: vQConf > vAnsMap ).

tff(enumGID_type,type,
    venumGID: vGID > vGID ).

tff(askText_type,type,
    vaskText: vLabel > vstring ).

tff(minus_type,type,
    vminus: ( vnat * vnat ) > vnat ).

tff(typeOf_type,type,
    vtypeOf: vAval > vAType ).

tff(evalBinOp_type,type,
    vevalBinOp: ( vBinOpT * vAval * vAval ) > vOptExp ).

tff(getQM_type,type,
    vgetQM: vQConf > vQMap ).

tff(initQID_type,type,
    vinitQID: vQID ).

tff(plus_type,type,
    vplus: ( vnat * vnat ) > vnat ).

tff(expIsValue_type,type,
    vexpIsValue: vExp > $o ).

tff(askYesNo_type,type,
    vaskYesNo: vLabel > vYN ).

tff(isValue_type,type,
    visValue: vQuestionnaire > $o ).

tff(typeAM_type,type,
    vtypeAM: vAnsMap > vATMap ).

tff(lookupQMap_type,type,
    vlookupQMap: ( vQID * vQMap ) > vOptQuestion ).

tff(askNumber_type,type,
    vaskNumber: vLabel > vnat ).

tff(initLabel_type,type,
    vinitLabel: vLabel ).

tff(divide_type,type,
    vdivide: ( vnat * vnat ) > vnat ).

tff(appendATMap_type,type,
    vappendATMap: ( vATMap * vATMap ) > vATMap ).

tff(or_type,type,
    vor: ( vYN * vYN ) > vYN ).

tff(isSomeAType_type,type,
    visSomeAType: vOptAType > $o ).

tff(pred_type,type,
    vpred: vnat > vnat ).

tff(lookupATMap_type,type,
    vlookupATMap: ( vQID * vATMap ) > vOptAType ).

tff(qcappend_type,type,
    vqcappend: ( vQConf * vQuestionnaire ) > vQConf ).

tff(enumchar_type,type,
    venumchar: vchar > vchar ).

tff(initchar_type,type,
    vinitchar: vchar ).

tff(isSomeQC_type,type,
    visSomeQC: vOptQConf > $o ).

tff(isSomeAval_type,type,
    visSomeAval: vOptAval > $o ).

tff(getQuest_type,type,
    vgetQuest: vQConf > vQuestionnaire ).

tff(evalUnOp_type,type,
    vevalUnOp: ( vUnOpT * vAval ) > vOptExp ).

tff(checkBinOp_type,type,
    vcheckBinOp: ( vBinOpT * vAType * vAType ) > vOptAType ).

tff(not_type,type,
    vnot: vYN > vYN ).

tff(reduce_type,type,
    vreduce: ( vQuestionnaire * vAnsMap * vQMap ) > vOptQConf ).

tff(multiply_type,type,
    vmultiply: ( vnat * vnat ) > vnat ).

tff(appendAnsMap_type,type,
    vappendAnsMap: ( vAnsMap * vAnsMap ) > vAnsMap ).

tff(checkUnOp_type,type,
    vcheckUnOp: ( vUnOpT * vAType ) > vOptAType ).

tff(typeQM_type,type,
    vtypeQM: vQMap > vATMap ).

tff(isSomeExp_type,type,
    visSomeExp: vOptExp > $o ).

tff(intersectATM_type,type,
    vintersectATM: ( vATMap * vATMap ) > vATMap ).

tff(isSomeMapConf_type,type,
    visSomeMapConf: vOptMapConf > $o ).

tff(enumLabel_type,type,
    venumLabel: vLabel > vLabel ).

tff(initGID_type,type,
    vinitGID: vGID ).

tff(lt_type,type,
    vlt: ( vnat * vnat ) > vYN ).

tff(gt_type,type,
    vgt: ( vnat * vnat ) > vYN ).

tff(lookupAnsMap_type,type,
    vlookupAnsMap: ( vQID * vAnsMap ) > vOptAval ).

tff(reduceExp_type,type,
    vreduceExp: ( vExp * vAnsMap ) > vOptExp ).

tff(enumQID_type,type,
    venumQID: vQID > vQID ).

tff(and_type,type,
    vand: ( vYN * vYN ) > vYN ).

tff(isSomeQuestion_type,type,
    visSomeQuestion: vOptQuestion > $o ).

tff(ptcheck_type,type,
    vptcheck: ( vMapConf * vQuestionnaire * vMapConf ) > $o ).

tff(append_type,type,
    vappend: ( vATList * vATList ) > vATList ).

tff(getQuestionQID_type,type,
    vgetQuestionQID: vOptQuestion > vQID ).

tff(getMapConf_type,type,
    vgetMapConf: vOptMapConf > vMapConf ).

tff(getQuestionLabel_type,type,
    vgetQuestionLabel: vOptQuestion > vLabel ).

tff(getAType_type,type,
    vgetAType: vOptAType > vAType ).

tff(getQuestionAType_type,type,
    vgetQuestionAType: vOptQuestion > vAType ).

tff(getQC_type,type,
    vgetQC: vOptQConf > vQConf ).

tff(getExpValue_type,type,
    vgetExpValue: vExp > vAval ).

tff(getAval_type,type,
    vgetAval: vOptAval > vAval ).

tff(getExp_type,type,
    vgetExp: vOptExp > vExp ).

tff('dom-Entry',axiom,
    ! [VX: vEntry] :
      ( ? [VQID0: vQID,VLabel0: vLabel,VAType0: vAType] : ( VX = vquestion(VQID0,VLabel0,VAType0) )
      | ? [VQID0: vQID,VAType0: vAType,VExp0: vExp] : ( VX = vvalue(VQID0,VAType0,VExp0) )
      | ? [VQID0: vQID,VLabel0: vLabel,VAType0: vAType] : ( VX = vdefquestion(VQID0,VLabel0,VAType0) )
      | ? [VQID0: vQID] : ( VX = vask(VQID0) ) ) ).

tff('EQ-question',axiom,
    ! [VQID1: vQID,VLabel1: vLabel,VAType0: vAType,VQID0: vQID,VAType1: vAType,VLabel0: vLabel] :
      ( ( vquestion(VQID0,VLabel0,VAType0) = vquestion(VQID1,VLabel1,VAType1) )
     => ( ( VQID0 = VQID1 )
        & ( VLabel0 = VLabel1 )
        & ( VAType0 = VAType1 ) ) ) ).

tff('EQ-value',axiom,
    ! [VQID1: vQID,VExp1: vExp,VAType0: vAType,VQID0: vQID,VAType1: vAType,VExp0: vExp] :
      ( ( vvalue(VQID0,VAType0,VExp0) = vvalue(VQID1,VAType1,VExp1) )
     => ( ( VQID0 = VQID1 )
        & ( VAType0 = VAType1 )
        & ( VExp0 = VExp1 ) ) ) ).

tff('EQ-defquestion',axiom,
    ! [VQID1: vQID,VLabel1: vLabel,VAType0: vAType,VQID0: vQID,VAType1: vAType,VLabel0: vLabel] :
      ( ( vdefquestion(VQID0,VLabel0,VAType0) = vdefquestion(VQID1,VLabel1,VAType1) )
     => ( ( VQID0 = VQID1 )
        & ( VLabel0 = VLabel1 )
        & ( VAType0 = VAType1 ) ) ) ).

tff('EQ-ask',axiom,
    ! [VQID0: vQID,VQID1: vQID] :
      ( ( vask(VQID0) = vask(VQID1) )
     => ( VQID0 = VQID1 ) ) ).

tff('DIFF-question-value',axiom,
    ! [VQID1: vQID,VAType0: vAType,VQID0: vQID,VAType1: vAType,VExp0: vExp,VLabel0: vLabel] : ( vquestion(VQID0,VLabel0,VAType0) != vvalue(VQID1,VAType1,VExp0) ) ).

tff('DIFF-question-defquestion',axiom,
    ! [VQID1: vQID,VLabel1: vLabel,VAType0: vAType,VQID0: vQID,VAType1: vAType,VLabel0: vLabel] : ( vquestion(VQID0,VLabel0,VAType0) != vdefquestion(VQID1,VLabel1,VAType1) ) ).

tff('DIFF-question-ask',axiom,
    ! [VQID0: vQID,VLabel0: vLabel,VAType0: vAType,VQID1: vQID] : ( vquestion(VQID0,VLabel0,VAType0) != vask(VQID1) ) ).

tff('DIFF-value-defquestion',axiom,
    ! [VQID1: vQID,VAType0: vAType,VQID0: vQID,VAType1: vAType,VExp0: vExp,VLabel0: vLabel] : ( vvalue(VQID0,VAType0,VExp0) != vdefquestion(VQID1,VLabel0,VAType1) ) ).

tff('DIFF-value-ask',axiom,
    ! [VQID0: vQID,VAType0: vAType,VExp0: vExp,VQID1: vQID] : ( vvalue(VQID0,VAType0,VExp0) != vask(VQID1) ) ).

tff('DIFF-defquestion-ask',axiom,
    ! [VQID0: vQID,VLabel0: vLabel,VAType0: vAType,VQID1: vQID] : ( vdefquestion(VQID0,VLabel0,VAType0) != vask(VQID1) ) ).

tff('dom-YN',axiom,
    ! [VX: vYN] :
      ( ( VX = vyes )
      | ( VX = vno ) ) ).

tff('DIFF-yes-no',axiom,
    vyes != vno ).

tff('dom-QMap',axiom,
    ! [VX: vQMap] :
      ( ( VX = vqmempty )
      | ? [VQID0: vQID,VLabel0: vLabel,VAType0: vAType,VQMap0: vQMap] : ( VX = vqmbind(VQID0,VLabel0,VAType0,VQMap0) ) ) ).

tff('EQ-qmbind',axiom,
    ! [VQMap0: vQMap,VQID1: vQID,VLabel1: vLabel,VAType0: vAType,VQID0: vQID,VAType1: vAType,VQMap1: vQMap,VLabel0: vLabel] :
      ( ( vqmbind(VQID0,VLabel0,VAType0,VQMap0) = vqmbind(VQID1,VLabel1,VAType1,VQMap1) )
     => ( ( VQID0 = VQID1 )
        & ( VLabel0 = VLabel1 )
        & ( VAType0 = VAType1 )
        & ( VQMap0 = VQMap1 ) ) ) ).

tff('DIFF-qmempty-qmbind',axiom,
    ! [VQID0: vQID,VLabel0: vLabel,VAType0: vAType,VQMap0: vQMap] : ( vqmempty != vqmbind(VQID0,VLabel0,VAType0,VQMap0) ) ).

tff('dom-MapConf',axiom,
    ! [VX: vMapConf] :
    ? [VATMap0: vATMap,VATMap1: vATMap] : ( VX = vMC(VATMap0,VATMap1) ) ).

tff('EQ-MC',axiom,
    ! [VATMap0: vATMap,VATMap1: vATMap,VATMap2: vATMap,VATMap3: vATMap] :
      ( ( vMC(VATMap0,VATMap1) = vMC(VATMap2,VATMap3) )
     => ( ( VATMap0 = VATMap2 )
        & ( VATMap1 = VATMap3 ) ) ) ).

tff('EQ-enumLabel',axiom,
    ! [VLabel0: vLabel,VLabel1: vLabel] :
      ( ( venumLabel(VLabel0) = venumLabel(VLabel1) )
     => ( VLabel0 = VLabel1 ) ) ).

tff('DIFF-initLabel-enumLabel',axiom,
    ! [VLabel0: vLabel] : ( vinitLabel != venumLabel(VLabel0) ) ).

tff('dom-AType',axiom,
    ! [VX: vAType] :
      ( ( VX = vYesNo )
      | ( VX = vNumber )
      | ( VX = vText ) ) ).

tff('DIFF-YesNo-Number',axiom,
    vYesNo != vNumber ).

tff('DIFF-YesNo-Text',axiom,
    vYesNo != vText ).

tff('DIFF-Number-Text',axiom,
    vNumber != vText ).

tff('dom-Exp',axiom,
    ! [VX: vExp] :
      ( ? [VAval0: vAval] : ( VX = vconstant(VAval0) )
      | ? [VQID0: vQID] : ( VX = vqvar(VQID0) )
      | ? [VExp0: vExp,VBinOpT0: vBinOpT,VExp1: vExp] : ( VX = vbinop(VExp0,VBinOpT0,VExp1) )
      | ? [VUnOpT0: vUnOpT,VExp0: vExp] : ( VX = vunop(VUnOpT0,VExp0) ) ) ).

tff('EQ-constant',axiom,
    ! [VAval0: vAval,VAval1: vAval] :
      ( ( vconstant(VAval0) = vconstant(VAval1) )
     => ( VAval0 = VAval1 ) ) ).

tff('EQ-qvar',axiom,
    ! [VQID0: vQID,VQID1: vQID] :
      ( ( vqvar(VQID0) = vqvar(VQID1) )
     => ( VQID0 = VQID1 ) ) ).

tff('EQ-binop',axiom,
    ! [VExp1: vExp,VExp3: vExp,VExp2: vExp,VExp0: vExp,VBinOpT0: vBinOpT,VBinOpT1: vBinOpT] :
      ( ( vbinop(VExp0,VBinOpT0,VExp1) = vbinop(VExp2,VBinOpT1,VExp3) )
     => ( ( VExp0 = VExp2 )
        & ( VBinOpT0 = VBinOpT1 )
        & ( VExp1 = VExp3 ) ) ) ).

tff('EQ-unop',axiom,
    ! [VUnOpT0: vUnOpT,VExp0: vExp,VUnOpT1: vUnOpT,VExp1: vExp] :
      ( ( vunop(VUnOpT0,VExp0) = vunop(VUnOpT1,VExp1) )
     => ( ( VUnOpT0 = VUnOpT1 )
        & ( VExp0 = VExp1 ) ) ) ).

tff('DIFF-constant-qvar',axiom,
    ! [VAval0: vAval,VQID0: vQID] : ( vconstant(VAval0) != vqvar(VQID0) ) ).

tff('DIFF-constant-binop',axiom,
    ! [VAval0: vAval,VExp0: vExp,VBinOpT0: vBinOpT,VExp1: vExp] : ( vconstant(VAval0) != vbinop(VExp0,VBinOpT0,VExp1) ) ).

tff('DIFF-constant-unop',axiom,
    ! [VAval0: vAval,VUnOpT0: vUnOpT,VExp0: vExp] : ( vconstant(VAval0) != vunop(VUnOpT0,VExp0) ) ).

tff('DIFF-qvar-binop',axiom,
    ! [VQID0: vQID,VExp0: vExp,VBinOpT0: vBinOpT,VExp1: vExp] : ( vqvar(VQID0) != vbinop(VExp0,VBinOpT0,VExp1) ) ).

tff('DIFF-qvar-unop',axiom,
    ! [VQID0: vQID,VUnOpT0: vUnOpT,VExp0: vExp] : ( vqvar(VQID0) != vunop(VUnOpT0,VExp0) ) ).

tff('DIFF-binop-unop',axiom,
    ! [VExp1: vExp,VUnOpT0: vUnOpT,VExp2: vExp,VExp0: vExp,VBinOpT0: vBinOpT] : ( vbinop(VExp0,VBinOpT0,VExp1) != vunop(VUnOpT0,VExp2) ) ).

tff('dom-nat',axiom,
    ! [VX: vnat] :
      ( ( VX = vzero )
      | ? [Vnat0: vnat] : ( VX = vsucc(Vnat0) ) ) ).

tff('EQ-succ',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ( vsucc(Vnat0) = vsucc(Vnat1) )
     => ( Vnat0 = Vnat1 ) ) ).

tff('DIFF-zero-succ',axiom,
    ! [Vnat0: vnat] : ( vzero != vsucc(Vnat0) ) ).

tff('dom-Questionnaire',axiom,
    ! [VX: vQuestionnaire] :
      ( ( VX = vqempty )
      | ? [VEntry0: vEntry] : ( VX = vqsingle(VEntry0) )
      | ? [VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire] : ( VX = vqseq(VQuestionnaire0,VQuestionnaire1) )
      | ? [VExp0: vExp,VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire] : ( VX = vqcond(VExp0,VQuestionnaire0,VQuestionnaire1) )
      | ? [VGID0: vGID,VQuestionnaire0: vQuestionnaire] : ( VX = vqgroup(VGID0,VQuestionnaire0) ) ) ).

tff('EQ-qsingle',axiom,
    ! [VEntry0: vEntry,VEntry1: vEntry] :
      ( ( vqsingle(VEntry0) = vqsingle(VEntry1) )
     => ( VEntry0 = VEntry1 ) ) ).

tff('EQ-qseq',axiom,
    ! [VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire,VQuestionnaire2: vQuestionnaire,VQuestionnaire3: vQuestionnaire] :
      ( ( vqseq(VQuestionnaire0,VQuestionnaire1) = vqseq(VQuestionnaire2,VQuestionnaire3) )
     => ( ( VQuestionnaire0 = VQuestionnaire2 )
        & ( VQuestionnaire1 = VQuestionnaire3 ) ) ) ).

tff('EQ-qcond',axiom,
    ! [VQuestionnaire2: vQuestionnaire,VQuestionnaire3: vQuestionnaire,VExp1: vExp,VQuestionnaire1: vQuestionnaire,VQuestionnaire0: vQuestionnaire,VExp0: vExp] :
      ( ( vqcond(VExp0,VQuestionnaire0,VQuestionnaire1) = vqcond(VExp1,VQuestionnaire2,VQuestionnaire3) )
     => ( ( VExp0 = VExp1 )
        & ( VQuestionnaire0 = VQuestionnaire2 )
        & ( VQuestionnaire1 = VQuestionnaire3 ) ) ) ).

tff('EQ-qgroup',axiom,
    ! [VGID0: vGID,VQuestionnaire0: vQuestionnaire,VGID1: vGID,VQuestionnaire1: vQuestionnaire] :
      ( ( vqgroup(VGID0,VQuestionnaire0) = vqgroup(VGID1,VQuestionnaire1) )
     => ( ( VGID0 = VGID1 )
        & ( VQuestionnaire0 = VQuestionnaire1 ) ) ) ).

tff('DIFF-qempty-qsingle',axiom,
    ! [VEntry0: vEntry] : ( vqempty != vqsingle(VEntry0) ) ).

tff('DIFF-qempty-qseq',axiom,
    ! [VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire] : ( vqempty != vqseq(VQuestionnaire0,VQuestionnaire1) ) ).

tff('DIFF-qempty-qcond',axiom,
    ! [VExp0: vExp,VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire] : ( vqempty != vqcond(VExp0,VQuestionnaire0,VQuestionnaire1) ) ).

tff('DIFF-qempty-qgroup',axiom,
    ! [VGID0: vGID,VQuestionnaire0: vQuestionnaire] : ( vqempty != vqgroup(VGID0,VQuestionnaire0) ) ).

tff('DIFF-qsingle-qseq',axiom,
    ! [VEntry0: vEntry,VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire] : ( vqsingle(VEntry0) != vqseq(VQuestionnaire0,VQuestionnaire1) ) ).

tff('DIFF-qsingle-qcond',axiom,
    ! [VEntry0: vEntry,VExp0: vExp,VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire] : ( vqsingle(VEntry0) != vqcond(VExp0,VQuestionnaire0,VQuestionnaire1) ) ).

tff('DIFF-qsingle-qgroup',axiom,
    ! [VEntry0: vEntry,VGID0: vGID,VQuestionnaire0: vQuestionnaire] : ( vqsingle(VEntry0) != vqgroup(VGID0,VQuestionnaire0) ) ).

tff('DIFF-qseq-qcond',axiom,
    ! [VQuestionnaire2: vQuestionnaire,VQuestionnaire3: vQuestionnaire,VQuestionnaire1: vQuestionnaire,VQuestionnaire0: vQuestionnaire,VExp0: vExp] : ( vqseq(VQuestionnaire0,VQuestionnaire1) != vqcond(VExp0,VQuestionnaire2,VQuestionnaire3) ) ).

tff('DIFF-qseq-qgroup',axiom,
    ! [VQuestionnaire0: vQuestionnaire,VQuestionnaire1: vQuestionnaire,VGID0: vGID,VQuestionnaire2: vQuestionnaire] : ( vqseq(VQuestionnaire0,VQuestionnaire1) != vqgroup(VGID0,VQuestionnaire2) ) ).

tff('DIFF-qcond-qgroup',axiom,
    ! [VQuestionnaire2: vQuestionnaire,VQuestionnaire1: vQuestionnaire,VGID0: vGID,VQuestionnaire0: vQuestionnaire,VExp0: vExp] : ( vqcond(VExp0,VQuestionnaire0,VQuestionnaire1) != vqgroup(VGID0,VQuestionnaire2) ) ).

tff('EQ-enumchar',axiom,
    ! [Vchar0: vchar,Vchar1: vchar] :
      ( ( venumchar(Vchar0) = venumchar(Vchar1) )
     => ( Vchar0 = Vchar1 ) ) ).

tff('DIFF-initchar-enumchar',axiom,
    ! [Vchar0: vchar] : ( vinitchar != venumchar(Vchar0) ) ).

tff('dom-OptQConf',axiom,
    ! [VX: vOptQConf] :
      ( ( VX = vnoQConf )
      | ? [VQConf0: vQConf] : ( VX = vsomeQConf(VQConf0) ) ) ).

tff('EQ-someQConf',axiom,
    ! [VQConf0: vQConf,VQConf1: vQConf] :
      ( ( vsomeQConf(VQConf0) = vsomeQConf(VQConf1) )
     => ( VQConf0 = VQConf1 ) ) ).

tff('DIFF-noQConf-someQConf',axiom,
    ! [VQConf0: vQConf] : ( vnoQConf != vsomeQConf(VQConf0) ) ).

tff('dom-OptAType',axiom,
    ! [VX: vOptAType] :
      ( ( VX = vnoAType )
      | ? [VAType0: vAType] : ( VX = vsomeAType(VAType0) ) ) ).

tff('EQ-someAType',axiom,
    ! [VAType0: vAType,VAType1: vAType] :
      ( ( vsomeAType(VAType0) = vsomeAType(VAType1) )
     => ( VAType0 = VAType1 ) ) ).

tff('DIFF-noAType-someAType',axiom,
    ! [VAType0: vAType] : ( vnoAType != vsomeAType(VAType0) ) ).

tff('dom-Aval',axiom,
    ! [VX: vAval] :
      ( ? [VYN0: vYN] : ( VX = vB(VYN0) )
      | ? [Vnat0: vnat] : ( VX = vNum(Vnat0) )
      | ? [Vstring0: vstring] : ( VX = vT(Vstring0) ) ) ).

tff('EQ-B',axiom,
    ! [VYN0: vYN,VYN1: vYN] :
      ( ( vB(VYN0) = vB(VYN1) )
     => ( VYN0 = VYN1 ) ) ).

tff('EQ-Num',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ( vNum(Vnat0) = vNum(Vnat1) )
     => ( Vnat0 = Vnat1 ) ) ).

tff('EQ-T',axiom,
    ! [Vstring0: vstring,Vstring1: vstring] :
      ( ( vT(Vstring0) = vT(Vstring1) )
     => ( Vstring0 = Vstring1 ) ) ).

tff('DIFF-B-Num',axiom,
    ! [VYN0: vYN,Vnat0: vnat] : ( vB(VYN0) != vNum(Vnat0) ) ).

tff('DIFF-B-T',axiom,
    ! [VYN0: vYN,Vstring0: vstring] : ( vB(VYN0) != vT(Vstring0) ) ).

tff('DIFF-Num-T',axiom,
    ! [Vnat0: vnat,Vstring0: vstring] : ( vNum(Vnat0) != vT(Vstring0) ) ).

tff('dom-UnOpT',axiom,
    ! [VX: vUnOpT] : ( VX = vnotop ) ).

tff('dom-OptExp',axiom,
    ! [VX: vOptExp] :
      ( ( VX = vnoExp )
      | ? [VExp0: vExp] : ( VX = vsomeExp(VExp0) ) ) ).

tff('EQ-someExp',axiom,
    ! [VExp0: vExp,VExp1: vExp] :
      ( ( vsomeExp(VExp0) = vsomeExp(VExp1) )
     => ( VExp0 = VExp1 ) ) ).

tff('DIFF-noExp-someExp',axiom,
    ! [VExp0: vExp] : ( vnoExp != vsomeExp(VExp0) ) ).

tff('dom-BinOpT',axiom,
    ! [VX: vBinOpT] :
      ( ( VX = vaddop )
      | ( VX = vsubop )
      | ( VX = vmulop )
      | ( VX = vdivop )
      | ( VX = veqop )
      | ( VX = vgtop )
      | ( VX = vltop )
      | ( VX = vandop )
      | ( VX = vorop ) ) ).

tff('DIFF-addop-subop',axiom,
    vaddop != vsubop ).

tff('DIFF-addop-mulop',axiom,
    vaddop != vmulop ).

tff('DIFF-addop-divop',axiom,
    vaddop != vdivop ).

tff('DIFF-addop-eqop',axiom,
    vaddop != veqop ).

tff('DIFF-addop-gtop',axiom,
    vaddop != vgtop ).

tff('DIFF-addop-ltop',axiom,
    vaddop != vltop ).

tff('DIFF-addop-andop',axiom,
    vaddop != vandop ).

tff('DIFF-addop-orop',axiom,
    vaddop != vorop ).

tff('DIFF-subop-mulop',axiom,
    vsubop != vmulop ).

tff('DIFF-subop-divop',axiom,
    vsubop != vdivop ).

tff('DIFF-subop-eqop',axiom,
    vsubop != veqop ).

tff('DIFF-subop-gtop',axiom,
    vsubop != vgtop ).

tff('DIFF-subop-ltop',axiom,
    vsubop != vltop ).

tff('DIFF-subop-andop',axiom,
    vsubop != vandop ).

tff('DIFF-subop-orop',axiom,
    vsubop != vorop ).

tff('DIFF-mulop-divop',axiom,
    vmulop != vdivop ).

tff('DIFF-mulop-eqop',axiom,
    vmulop != veqop ).

tff('DIFF-mulop-gtop',axiom,
    vmulop != vgtop ).

tff('DIFF-mulop-ltop',axiom,
    vmulop != vltop ).

tff('DIFF-mulop-andop',axiom,
    vmulop != vandop ).

tff('DIFF-mulop-orop',axiom,
    vmulop != vorop ).

tff('DIFF-divop-eqop',axiom,
    vdivop != veqop ).

tff('DIFF-divop-gtop',axiom,
    vdivop != vgtop ).

tff('DIFF-divop-ltop',axiom,
    vdivop != vltop ).

tff('DIFF-divop-andop',axiom,
    vdivop != vandop ).

tff('DIFF-divop-orop',axiom,
    vdivop != vorop ).

tff('DIFF-eqop-gtop',axiom,
    veqop != vgtop ).

tff('DIFF-eqop-ltop',axiom,
    veqop != vltop ).

tff('DIFF-eqop-andop',axiom,
    veqop != vandop ).

tff('DIFF-eqop-orop',axiom,
    veqop != vorop ).

tff('DIFF-gtop-ltop',axiom,
    vgtop != vltop ).

tff('DIFF-gtop-andop',axiom,
    vgtop != vandop ).

tff('DIFF-gtop-orop',axiom,
    vgtop != vorop ).

tff('DIFF-ltop-andop',axiom,
    vltop != vandop ).

tff('DIFF-ltop-orop',axiom,
    vltop != vorop ).

tff('DIFF-andop-orop',axiom,
    vandop != vorop ).

tff('dom-AnsMap',axiom,
    ! [VX: vAnsMap] :
      ( ( VX = vaempty )
      | ? [VQID0: vQID,VAval0: vAval,VAnsMap0: vAnsMap] : ( VX = vabind(VQID0,VAval0,VAnsMap0) ) ) ).

tff('EQ-abind',axiom,
    ! [VQID1: vQID,VAnsMap1: vAnsMap,VAval0: vAval,VAval1: vAval,VQID0: vQID,VAnsMap0: vAnsMap] :
      ( ( vabind(VQID0,VAval0,VAnsMap0) = vabind(VQID1,VAval1,VAnsMap1) )
     => ( ( VQID0 = VQID1 )
        & ( VAval0 = VAval1 )
        & ( VAnsMap0 = VAnsMap1 ) ) ) ).

tff('DIFF-aempty-abind',axiom,
    ! [VQID0: vQID,VAval0: vAval,VAnsMap0: vAnsMap] : ( vaempty != vabind(VQID0,VAval0,VAnsMap0) ) ).

tff('dom-ATList',axiom,
    ! [VX: vATList] :
      ( ( VX = vatempty )
      | ? [VAType0: vAType,VATList0: vATList] : ( VX = vatcons(VAType0,VATList0) ) ) ).

tff('EQ-atcons',axiom,
    ! [VAType0: vAType,VATList0: vATList,VAType1: vAType,VATList1: vATList] :
      ( ( vatcons(VAType0,VATList0) = vatcons(VAType1,VATList1) )
     => ( ( VAType0 = VAType1 )
        & ( VATList0 = VATList1 ) ) ) ).

tff('DIFF-atempty-atcons',axiom,
    ! [VAType0: vAType,VATList0: vATList] : ( vatempty != vatcons(VAType0,VATList0) ) ).

tff('dom-OptQuestion',axiom,
    ! [VX: vOptQuestion] :
      ( ( VX = vnoQuestion )
      | ? [VQID0: vQID,VLabel0: vLabel,VAType0: vAType] : ( VX = vsomeQuestion(VQID0,VLabel0,VAType0) ) ) ).

tff('EQ-someQuestion',axiom,
    ! [VQID1: vQID,VLabel1: vLabel,VAType0: vAType,VQID0: vQID,VAType1: vAType,VLabel0: vLabel] :
      ( ( vsomeQuestion(VQID0,VLabel0,VAType0) = vsomeQuestion(VQID1,VLabel1,VAType1) )
     => ( ( VQID0 = VQID1 )
        & ( VLabel0 = VLabel1 )
        & ( VAType0 = VAType1 ) ) ) ).

tff('DIFF-noQuestion-someQuestion',axiom,
    ! [VQID0: vQID,VLabel0: vLabel,VAType0: vAType] : ( vnoQuestion != vsomeQuestion(VQID0,VLabel0,VAType0) ) ).

tff('EQ-enumGID',axiom,
    ! [VGID0: vGID,VGID1: vGID] :
      ( ( venumGID(VGID0) = venumGID(VGID1) )
     => ( VGID0 = VGID1 ) ) ).

tff('DIFF-initGID-enumGID',axiom,
    ! [VGID0: vGID] : ( vinitGID != venumGID(VGID0) ) ).

tff('dom-ATMap',axiom,
    ! [VX: vATMap] :
      ( ( VX = vatmempty )
      | ? [VQID0: vQID,VAType0: vAType,VATMap0: vATMap] : ( VX = vatmbind(VQID0,VAType0,VATMap0) ) ) ).

tff('EQ-atmbind',axiom,
    ! [VQID1: vQID,VATMap1: vATMap,VATMap0: vATMap,VAType0: vAType,VQID0: vQID,VAType1: vAType] :
      ( ( vatmbind(VQID0,VAType0,VATMap0) = vatmbind(VQID1,VAType1,VATMap1) )
     => ( ( VQID0 = VQID1 )
        & ( VAType0 = VAType1 )
        & ( VATMap0 = VATMap1 ) ) ) ).

tff('DIFF-atmempty-atmbind',axiom,
    ! [VQID0: vQID,VAType0: vAType,VATMap0: vATMap] : ( vatmempty != vatmbind(VQID0,VAType0,VATMap0) ) ).

tff('dom-string',axiom,
    ! [VX: vstring] :
      ( ( VX = vsempty )
      | ? [Vchar0: vchar,Vstring0: vstring] : ( VX = vscons(Vchar0,Vstring0) ) ) ).

tff('EQ-scons',axiom,
    ! [Vchar0: vchar,Vstring0: vstring,Vchar1: vchar,Vstring1: vstring] :
      ( ( vscons(Vchar0,Vstring0) = vscons(Vchar1,Vstring1) )
     => ( ( Vchar0 = Vchar1 )
        & ( Vstring0 = Vstring1 ) ) ) ).

tff('DIFF-sempty-scons',axiom,
    ! [Vchar0: vchar,Vstring0: vstring] : ( vsempty != vscons(Vchar0,Vstring0) ) ).

tff('dom-OptMapConf',axiom,
    ! [VX: vOptMapConf] :
      ( ( VX = vnoMapConf )
      | ? [VMapConf0: vMapConf] : ( VX = vsomeMapConf(VMapConf0) ) ) ).

tff('EQ-someMapConf',axiom,
    ! [VMapConf0: vMapConf,VMapConf1: vMapConf] :
      ( ( vsomeMapConf(VMapConf0) = vsomeMapConf(VMapConf1) )
     => ( VMapConf0 = VMapConf1 ) ) ).

tff('DIFF-noMapConf-someMapConf',axiom,
    ! [VMapConf0: vMapConf] : ( vnoMapConf != vsomeMapConf(VMapConf0) ) ).

tff('EQ-enumQID',axiom,
    ! [VQID0: vQID,VQID1: vQID] :
      ( ( venumQID(VQID0) = venumQID(VQID1) )
     => ( VQID0 = VQID1 ) ) ).

tff('DIFF-initQID-enumQID',axiom,
    ! [VQID0: vQID] : ( vinitQID != venumQID(VQID0) ) ).

tff('dom-QConf',axiom,
    ! [VX: vQConf] :
    ? [VAnsMap0: vAnsMap,VQMap0: vQMap,VQuestionnaire0: vQuestionnaire] : ( VX = vQC(VAnsMap0,VQMap0,VQuestionnaire0) ) ).

tff('EQ-QC',axiom,
    ! [VQMap0: vQMap,VAnsMap1: vAnsMap,VQuestionnaire1: vQuestionnaire,VAnsMap0: vAnsMap,VQuestionnaire0: vQuestionnaire,VQMap1: vQMap] :
      ( ( vQC(VAnsMap0,VQMap0,VQuestionnaire0) = vQC(VAnsMap1,VQMap1,VQuestionnaire1) )
     => ( ( VAnsMap0 = VAnsMap1 )
        & ( VQMap0 = VQMap1 )
        & ( VQuestionnaire0 = VQuestionnaire1 ) ) ) ).

tff('dom-OptAval',axiom,
    ! [VX: vOptAval] :
      ( ( VX = vnoAval )
      | ? [VAval0: vAval] : ( VX = vsomeAval(VAval0) ) ) ).

tff('EQ-someAval',axiom,
    ! [VAval0: vAval,VAval1: vAval] :
      ( ( vsomeAval(VAval0) = vsomeAval(VAval1) )
     => ( VAval0 = VAval1 ) ) ).

tff('DIFF-noAval-someAval',axiom,
    ! [VAval0: vAval] : ( vnoAval != vsomeAval(VAval0) ) ).

tff('getAval-0',axiom,
    ! [Vaval: vAval] : ( vgetAval(vsomeAval(Vaval)) = Vaval ) ).

tff('getAType-0',axiom,
    ! [Vatype: vAType] : ( vgetAType(vsomeAType(Vatype)) = Vatype ) ).

tff('getQuestionQID-0',axiom,
    ! [Vqid: vQID,Vl: vLabel,Vat: vAType] : ( vgetQuestionQID(vsomeQuestion(Vqid,Vl,Vat)) = Vqid ) ).

tff('getQuestionLabel-0',axiom,
    ! [Vqid: vQID,Vl: vLabel,Vat: vAType] : ( vgetQuestionLabel(vsomeQuestion(Vqid,Vl,Vat)) = Vl ) ).

tff('getQuestionAType-0',axiom,
    ! [Vqid: vQID,Vl: vLabel,Vat: vAType] : ( vgetQuestionAType(vsomeQuestion(Vqid,Vl,Vat)) = Vat ) ).

tff('getQC-0',axiom,
    ! [Vqc: vQConf] : ( vgetQC(vsomeQConf(Vqc)) = Vqc ) ).

tff('getExp-0',axiom,
    ! [Ve: vExp] : ( vgetExp(vsomeExp(Ve)) = Ve ) ).

tff('getExpValue-0',axiom,
    ! [Vav: vAval] : ( vgetExpValue(vconstant(Vav)) = Vav ) ).

tff('getMapConf-0',axiom,
    ! [Vmc: vMapConf] : ( vgetMapConf(vsomeMapConf(Vmc)) = Vmc ) ).

tff('and-0',axiom,
    vand(vyes,vyes) = vyes ).

tff('and-1',axiom,
    ! [VwildcardName0: vYN,VwildcardName1: vYN] :
      ( ( ( VwildcardName0 != vyes )
        | ( VwildcardName1 != vyes ) )
     => ( vand(VwildcardName0,VwildcardName1) = vno ) ) ).

tff('and-INV',axiom,
    ! [VYN0: vYN,VYN1: vYN] :
      ( ( ( VYN0 = vyes )
        & ( VYN1 = vyes )
        & ( vand(VYN0,VYN1) = vyes ) )
      | ? [VwildcardName00: vYN,VwildcardName10: vYN] :
          ( ( ( VwildcardName00 != vyes )
            | ( VwildcardName10 != vyes ) )
          & ( VYN0 = VwildcardName00 )
          & ( VYN1 = VwildcardName10 )
          & ( vand(VYN0,VYN1) = vno ) ) ) ).

tff('or-0',axiom,
    vor(vno,vno) = vno ).

tff('or-1',axiom,
    ! [VwildcardName0: vYN,VwildcardName1: vYN] :
      ( ( ( VwildcardName0 != vno )
        | ( VwildcardName1 != vno ) )
     => ( vor(VwildcardName0,VwildcardName1) = vyes ) ) ).

tff('or-INV',axiom,
    ! [VYN0: vYN,VYN1: vYN] :
      ( ( ( VYN0 = vno )
        & ( VYN1 = vno )
        & ( vor(VYN0,VYN1) = vno ) )
      | ? [VwildcardName00: vYN,VwildcardName10: vYN] :
          ( ( ( VwildcardName00 != vno )
            | ( VwildcardName10 != vno ) )
          & ( VYN0 = VwildcardName00 )
          & ( VYN1 = VwildcardName10 )
          & ( vor(VYN0,VYN1) = vyes ) ) ) ).

tff('not-0',axiom,
    vnot(vyes) = vno ).

tff('not-1',axiom,
    vnot(vno) = vyes ).

tff('not-INV',axiom,
    ! [VYN0: vYN] :
      ( ( ( VYN0 = vyes )
        & ( vnot(VYN0) = vno ) )
      | ( ( VYN0 = vno )
        & ( vnot(VYN0) = vyes ) ) ) ).

tff('pred-0',axiom,
    vpred(vzero) = vzero ).

tff('pred-1',axiom,
    ! [Vn: vnat] : ( vpred(vsucc(Vn)) = Vn ) ).

tff('pred-INV',axiom,
    ! [Vnat0: vnat] :
      ( ( ( Vnat0 = vzero )
        & ( vpred(Vnat0) = vzero ) )
      | ? [Vn0: vnat] :
          ( ( Vnat0 = vsucc(Vn0) )
          & ( vpred(Vnat0) = Vn0 ) ) ) ).

tff('gt-0',axiom,
    ! [VwildcardName0: vnat] : ( vgt(vzero,VwildcardName0) = vno ) ).

tff('gt-1',axiom,
    ! [VwildcardName0: vnat] : ( vgt(vsucc(VwildcardName0),vzero) = vyes ) ).

tff('gt-2',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vgt(vsucc(Vn1),vsucc(Vn2)) = vgt(Vn1,Vn1) ) ).

tff('gt-INV',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ? [VwildcardName00: vnat] :
          ( ( Vnat0 = vzero )
          & ( Vnat1 = VwildcardName00 )
          & ( vgt(Vnat0,Vnat1) = vno ) )
      | ? [VwildcardName01: vnat] :
          ( ( Vnat0 = vsucc(VwildcardName01) )
          & ( Vnat1 = vzero )
          & ( vgt(Vnat0,Vnat1) = vyes ) )
      | ? [Vn10: vnat,Vn20: vnat] :
          ( ( Vnat0 = vsucc(Vn10) )
          & ( Vnat1 = vsucc(Vn20) )
          & ( vgt(Vnat0,Vnat1) = vgt(Vn10,Vn10) ) ) ) ).

tff('lt-0',axiom,
    ! [VwildcardName0: vnat] : ( vlt(VwildcardName0,vzero) = vno ) ).

tff('lt-1',axiom,
    ! [VwildcardName0: vnat] : ( vlt(vzero,vsucc(VwildcardName0)) = vyes ) ).

tff('lt-2',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vlt(vsucc(Vn1),vsucc(Vn2)) = vlt(Vn1,Vn1) ) ).

tff('lt-INV',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ? [VwildcardName00: vnat] :
          ( ( Vnat0 = VwildcardName00 )
          & ( Vnat1 = vzero )
          & ( vlt(Vnat0,Vnat1) = vno ) )
      | ? [VwildcardName01: vnat] :
          ( ( Vnat0 = vzero )
          & ( Vnat1 = vsucc(VwildcardName01) )
          & ( vlt(Vnat0,Vnat1) = vyes ) )
      | ? [Vn20: vnat,Vn10: vnat] :
          ( ( Vnat0 = vsucc(Vn10) )
          & ( Vnat1 = vsucc(Vn20) )
          & ( vlt(Vnat0,Vnat1) = vlt(Vn10,Vn10) ) ) ) ).

tff('plus-0',axiom,
    ! [Vn: vnat] : ( vplus(Vn,vzero) = Vn ) ).

tff('plus-1',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vplus(Vn1,vsucc(Vn2)) = vsucc(vplus(Vn1,Vn2)) ) ).

tff('plus-INV',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ? [Vn0: vnat] :
          ( ( Vnat0 = Vn0 )
          & ( Vnat1 = vzero )
          & ( vplus(Vnat0,Vnat1) = Vn0 ) )
      | ? [Vn20: vnat,Vn10: vnat] :
          ( ( Vnat0 = Vn10 )
          & ( Vnat1 = vsucc(Vn20) )
          & ( vplus(Vnat0,Vnat1) = vsucc(vplus(Vn10,Vn20)) ) ) ) ).

tff('minus-0',axiom,
    ! [Vn: vnat] : ( vminus(Vn,vzero) = Vn ) ).

tff('minus-1',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vminus(Vn1,vsucc(Vn2)) = vpred(vminus(Vn1,Vn2)) ) ).

tff('minus-INV',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ? [Vn0: vnat] :
          ( ( Vnat0 = Vn0 )
          & ( Vnat1 = vzero )
          & ( vminus(Vnat0,Vnat1) = Vn0 ) )
      | ? [Vn20: vnat,Vn10: vnat] :
          ( ( Vnat0 = Vn10 )
          & ( Vnat1 = vsucc(Vn20) )
          & ( vminus(Vnat0,Vnat1) = vpred(vminus(Vn10,Vn20)) ) ) ) ).

tff('multiply-0',axiom,
    ! [VwildcardName0: vnat] : ( vmultiply(VwildcardName0,vzero) = vzero ) ).

tff('multiply-1',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vmultiply(Vn1,vsucc(Vn2)) = vplus(Vn1,vmultiply(Vn1,Vn2)) ) ).

tff('multiply-INV',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ? [VwildcardName00: vnat] :
          ( ( Vnat0 = VwildcardName00 )
          & ( Vnat1 = vzero )
          & ( vmultiply(Vnat0,Vnat1) = vzero ) )
      | ? [Vn20: vnat,Vn10: vnat] :
          ( ( Vnat0 = Vn10 )
          & ( Vnat1 = vsucc(Vn20) )
          & ( vmultiply(Vnat0,Vnat1) = vplus(Vn10,vmultiply(Vn10,Vn20)) ) ) ) ).

tff('divide-0',axiom,
    ! [Vn1: vnat,Vn2: vnat] :
      ( ( vgt(Vn1,Vn2) = vyes )
     => ( vdivide(Vn1,Vn2) = vsucc(vdivide(vminus(Vn1,Vn2),Vn2)) ) ) ).

tff('divide-1',axiom,
    ! [Vn1: vnat,Vn2: vnat] :
      ( ( vgt(Vn1,Vn2) != vyes )
     => ( vdivide(Vn1,Vn2) = vzero ) ) ).

tff('divide-INV',axiom,
    ! [Vnat0: vnat,Vnat1: vnat] :
      ( ? [Vn10: vnat,Vn20: vnat] :
          ( ( vgt(Vn10,Vn20) = vyes )
          & ( Vnat0 = Vn10 )
          & ( Vnat1 = Vn20 )
          & ( vdivide(Vnat0,Vnat1) = vsucc(vdivide(vminus(Vn10,Vn20),Vn20)) ) )
      | ? [Vn11: vnat,Vn21: vnat] :
          ( ( vgt(Vn11,Vn21) != vyes )
          & ( Vnat0 = Vn11 )
          & ( Vnat1 = Vn21 )
          & ( vdivide(Vnat0,Vnat1) = vzero ) ) ) ).

tff('isSomeAval-0',axiom,
    ~ visSomeAval(vnoAval) ).

tff('isSomeAval-1',axiom,
    ! [VwildcardName0: vAval] : visSomeAval(vsomeAval(VwildcardName0)) ).

tff('isSomeAval-true-INV',axiom,
    ! [VOptAval0: vOptAval] :
      ( visSomeAval(VOptAval0)
     => ? [VwildcardName0: vAval] : ( VOptAval0 = vsomeAval(VwildcardName0) ) ) ).

tff('isSomeAval-false-INV',axiom,
    ! [VOptAval0: vOptAval] :
      ( ~ visSomeAval(VOptAval0)
     => ( VOptAval0 = vnoAval ) ) ).

tff('isSomeAType-0',axiom,
    ~ visSomeAType(vnoAType) ).

tff('isSomeAType-1',axiom,
    ! [VwildcardName0: vAType] : visSomeAType(vsomeAType(VwildcardName0)) ).

tff('isSomeAType-true-INV',axiom,
    ! [VOptAType0: vOptAType] :
      ( visSomeAType(VOptAType0)
     => ? [VwildcardName0: vAType] : ( VOptAType0 = vsomeAType(VwildcardName0) ) ) ).

tff('isSomeAType-false-INV',axiom,
    ! [VOptAType0: vOptAType] :
      ( ~ visSomeAType(VOptAType0)
     => ( VOptAType0 = vnoAType ) ) ).

tff('typeOf-0',axiom,
    ! [VwildcardName0: vYN] : ( vtypeOf(vB(VwildcardName0)) = vYesNo ) ).

tff('typeOf-1',axiom,
    ! [VwildcardName0: vnat] : ( vtypeOf(vNum(VwildcardName0)) = vNumber ) ).

tff('typeOf-2',axiom,
    ! [VwildcardName0: vstring] : ( vtypeOf(vT(VwildcardName0)) = vText ) ).

tff('typeOf-INV',axiom,
    ! [VAval0: vAval] :
      ( ? [VwildcardName00: vYN] :
          ( ( VAval0 = vB(VwildcardName00) )
          & ( vtypeOf(VAval0) = vYesNo ) )
      | ? [VwildcardName01: vnat] :
          ( ( VAval0 = vNum(VwildcardName01) )
          & ( vtypeOf(VAval0) = vNumber ) )
      | ? [VwildcardName02: vstring] :
          ( ( VAval0 = vT(VwildcardName02) )
          & ( vtypeOf(VAval0) = vText ) ) ) ).

tff('append-0',axiom,
    ! [Vatl: vATList] : ( vappend(vatempty,Vatl) = Vatl ) ).

tff('append-1',axiom,
    ! [Vatype: vAType,Vatlr: vATList,Vatl: vATList] : ( vappend(vatcons(Vatype,Vatlr),Vatl) = vatcons(Vatype,vappend(Vatlr,Vatl)) ) ).

tff('append-INV',axiom,
    ! [VATList0: vATList,VATList1: vATList] :
      ( ? [Vatl0: vATList] :
          ( ( VATList0 = vatempty )
          & ( VATList1 = Vatl0 )
          & ( vappend(VATList0,VATList1) = Vatl0 ) )
      | ? [Vatype0: vAType,Vatlr0: vATList,Vatl1: vATList] :
          ( ( VATList0 = vatcons(Vatype0,Vatlr0) )
          & ( VATList1 = Vatl1 )
          & ( vappend(VATList0,VATList1) = vatcons(Vatype0,vappend(Vatlr0,Vatl1)) ) ) ) ).

tff('lookupAnsMap-0',axiom,
    ! [VwildcardName0: vQID] : ( vlookupAnsMap(VwildcardName0,vaempty) = vnoAval ) ).

tff('lookupAnsMap-1',axiom,
    ! [Vqid1: vQID,Vaval: vAval,Vaml: vAnsMap] : ( vlookupAnsMap(Vqid1,vabind(Vqid1,Vaval,Vaml)) = vsomeAval(Vaval) ) ).

tff('lookupAnsMap-2',axiom,
    ! [Vqid: vQID,Vqid1: vQID,Vaval: vAval,Vaml: vAnsMap] :
      ( ( Vqid != Vqid1 )
     => ( vlookupAnsMap(Vqid,vabind(Vqid1,Vaval,Vaml)) = vlookupAnsMap(Vqid,Vaml) ) ) ).

tff('lookupAnsMap-INV',axiom,
    ! [VQID0: vQID,VAnsMap0: vAnsMap] :
      ( ? [VwildcardName00: vQID] :
          ( ( VQID0 = VwildcardName00 )
          & ( VAnsMap0 = vaempty )
          & ( vlookupAnsMap(VQID0,VAnsMap0) = vnoAval ) )
      | ? [Vqid10: vQID,Vaval0: vAval,Vaml0: vAnsMap,Vqid0: vQID] :
          ( ( Vqid0 = Vqid10 )
          & ( VQID0 = Vqid0 )
          & ( VAnsMap0 = vabind(Vqid10,Vaval0,Vaml0) )
          & ( vlookupAnsMap(VQID0,VAnsMap0) = vsomeAval(Vaval0) ) )
      | ? [Vqid11: vQID,Vaval1: vAval,Vaml1: vAnsMap,Vqid12: vQID] :
          ( ( Vqid12 != Vqid11 )
          & ( VQID0 = Vqid12 )
          & ( VAnsMap0 = vabind(Vqid11,Vaval1,Vaml1) )
          & ( vlookupAnsMap(VQID0,VAnsMap0) = vlookupAnsMap(Vqid12,Vaml1) ) ) ) ).

tff('appendAnsMap-0',axiom,
    ! [Vam: vAnsMap] : ( vappendAnsMap(vaempty,Vam) = Vam ) ).

tff('appendAnsMap-1',axiom,
    ! [Vqid: vQID,Vav: vAval,Vam: vAnsMap,Vaml: vAnsMap] : ( vappendAnsMap(vabind(Vqid,Vav,Vam),Vaml) = vabind(Vqid,Vav,vappendAnsMap(Vam,Vaml)) ) ).

tff('appendAnsMap-INV',axiom,
    ! [VAnsMap0: vAnsMap,VAnsMap1: vAnsMap] :
      ( ? [Vam0: vAnsMap] :
          ( ( VAnsMap0 = vaempty )
          & ( VAnsMap1 = Vam0 )
          & ( vappendAnsMap(VAnsMap0,VAnsMap1) = Vam0 ) )
      | ? [Vqid0: vQID,Vav0: vAval,Vam1: vAnsMap,Vaml0: vAnsMap] :
          ( ( VAnsMap0 = vabind(Vqid0,Vav0,Vam1) )
          & ( VAnsMap1 = Vaml0 )
          & ( vappendAnsMap(VAnsMap0,VAnsMap1) = vabind(Vqid0,Vav0,vappendAnsMap(Vam1,Vaml0)) ) ) ) ).

tff('isSomeQuestion-0',axiom,
    ~ visSomeQuestion(vnoQuestion) ).

tff('isSomeQuestion-1',axiom,
    ! [VwildcardName0: vQID,VwildcardName1: vLabel,VwildcardName2: vAType] : visSomeQuestion(vsomeQuestion(VwildcardName0,VwildcardName1,VwildcardName2)) ).

tff('isSomeQuestion-true-INV',axiom,
    ! [VOptQuestion0: vOptQuestion] :
      ( visSomeQuestion(VOptQuestion0)
     => ? [VwildcardName0: vQID,VwildcardName1: vLabel,VwildcardName2: vAType] : ( VOptQuestion0 = vsomeQuestion(VwildcardName0,VwildcardName1,VwildcardName2) ) ) ).

tff('isSomeQuestion-false-INV',axiom,
    ! [VOptQuestion0: vOptQuestion] :
      ( ~ visSomeQuestion(VOptQuestion0)
     => ( VOptQuestion0 = vnoQuestion ) ) ).

tff('lookupQMap-0',axiom,
    ! [VwildcardName0: vQID] : ( vlookupQMap(VwildcardName0,vqmempty) = vnoQuestion ) ).

tff('lookupQMap-1',axiom,
    ! [Vqid1: vQID,Vl: vLabel,Vat: vAType,Vqml: vQMap] : ( vlookupQMap(Vqid1,vqmbind(Vqid1,Vl,Vat,Vqml)) = vsomeQuestion(Vqid1,Vl,Vat) ) ).

tff('lookupQMap-2',axiom,
    ! [Vqml: vQMap,Vqid1: vQID,Vat: vAType,Vl: vLabel,Vqid: vQID] :
      ( ( Vqid != Vqid1 )
     => ( vlookupQMap(Vqid,vqmbind(Vqid1,Vl,Vat,Vqml)) = vlookupQMap(Vqid,Vqml) ) ) ).

tff('lookupQMap-INV',axiom,
    ! [VQID0: vQID,VQMap0: vQMap] :
      ( ? [VwildcardName00: vQID] :
          ( ( VQID0 = VwildcardName00 )
          & ( VQMap0 = vqmempty )
          & ( vlookupQMap(VQID0,VQMap0) = vnoQuestion ) )
      | ? [Vqml0: vQMap,Vqid10: vQID,Vat0: vAType,Vl0: vLabel,Vqid0: vQID] :
          ( ( Vqid0 = Vqid10 )
          & ( VQID0 = Vqid0 )
          & ( VQMap0 = vqmbind(Vqid10,Vl0,Vat0,Vqml0) )
          & ( vlookupQMap(VQID0,VQMap0) = vsomeQuestion(Vqid0,Vl0,Vat0) ) )
      | ? [Vqml1: vQMap,Vqid11: vQID,Vat1: vAType,Vl1: vLabel,Vqid12: vQID] :
          ( ( Vqid12 != Vqid11 )
          & ( VQID0 = Vqid12 )
          & ( VQMap0 = vqmbind(Vqid11,Vl1,Vat1,Vqml1) )
          & ( vlookupQMap(VQID0,VQMap0) = vlookupQMap(Vqid12,Vqml1) ) ) ) ).

tff('getAM-0',axiom,
    ! [Vam: vAnsMap,VwildcardName0: vQMap,VwildcardName1: vQuestionnaire] : ( vgetAM(vQC(Vam,VwildcardName0,VwildcardName1)) = Vam ) ).

tff('getAM-INV',axiom,
    ! [VQConf0: vQConf] :
    ? [Vam0: vAnsMap,VwildcardName00: vQMap,VwildcardName10: vQuestionnaire] :
      ( ( VQConf0 = vQC(Vam0,VwildcardName00,VwildcardName10) )
      & ( vgetAM(VQConf0) = Vam0 ) ) ).

tff('getQM-0',axiom,
    ! [VwildcardName0: vAnsMap,Vqm: vQMap,VwildcardName1: vQuestionnaire] : ( vgetQM(vQC(VwildcardName0,Vqm,VwildcardName1)) = Vqm ) ).

tff('getQM-INV',axiom,
    ! [VQConf0: vQConf] :
    ? [VwildcardName00: vAnsMap,Vqm0: vQMap,VwildcardName10: vQuestionnaire] :
      ( ( VQConf0 = vQC(VwildcardName00,Vqm0,VwildcardName10) )
      & ( vgetQM(VQConf0) = Vqm0 ) ) ).

tff('getQuest-0',axiom,
    ! [VwildcardName0: vAnsMap,VwildcardName1: vQMap,Vq: vQuestionnaire] : ( vgetQuest(vQC(VwildcardName0,VwildcardName1,Vq)) = Vq ) ).

tff('getQuest-INV',axiom,
    ! [VQConf0: vQConf] :
    ? [VwildcardName00: vAnsMap,VwildcardName10: vQMap,Vq0: vQuestionnaire] :
      ( ( VQConf0 = vQC(VwildcardName00,VwildcardName10,Vq0) )
      & ( vgetQuest(VQConf0) = Vq0 ) ) ).

tff('isValue-0',axiom,
    visValue(vqempty) ).

tff('isValue-1',axiom,
    ! [VwildcardName0: vQuestionnaire] :
      ( ( VwildcardName0 != vqempty )
     => ~ visValue(VwildcardName0) ) ).

tff('isValue-true-INV',axiom,
    ! [VQuestionnaire0: vQuestionnaire] :
      ( visValue(VQuestionnaire0)
     => ( VQuestionnaire0 = vqempty ) ) ).

tff('isValue-false-INV',axiom,
    ! [VQuestionnaire0: vQuestionnaire] :
      ( ~ visValue(VQuestionnaire0)
     => ? [VwildcardName0: vQuestionnaire] :
          ( ( VwildcardName0 != vqempty )
          & ( VQuestionnaire0 = VwildcardName0 ) ) ) ).

tff('isSomeQC-0',axiom,
    ~ visSomeQC(vnoQConf) ).

tff('isSomeQC-1',axiom,
    ! [VwildcardName0: vQConf] : visSomeQC(vsomeQConf(VwildcardName0)) ).

tff('isSomeQC-true-INV',axiom,
    ! [VOptQConf0: vOptQConf] :
      ( visSomeQC(VOptQConf0)
     => ? [VwildcardName0: vQConf] : ( VOptQConf0 = vsomeQConf(VwildcardName0) ) ) ).

tff('isSomeQC-false-INV',axiom,
    ! [VOptQConf0: vOptQConf] :
      ( ~ visSomeQC(VOptQConf0)
     => ( VOptQConf0 = vnoQConf ) ) ).

tff('qcappend-0',axiom,
    ! [Vam: vAnsMap,Vqm: vQMap,Vqs1: vQuestionnaire,Vqs2: vQuestionnaire] : ( vqcappend(vQC(Vam,Vqm,Vqs1),Vqs2) = vQC(Vam,Vqm,vqseq(Vqs1,Vqs2)) ) ).

tff('qcappend-INV',axiom,
    ! [VQConf0: vQConf,VQuestionnaire0: vQuestionnaire] :
    ? [Vam0: vAnsMap,Vqm0: vQMap,Vqs10: vQuestionnaire,Vqs20: vQuestionnaire] :
      ( ( VQConf0 = vQC(Vam0,Vqm0,Vqs10) )
      & ( VQuestionnaire0 = Vqs20 )
      & ( vqcappend(VQConf0,VQuestionnaire0) = vQC(Vam0,Vqm0,vqseq(Vqs10,Vqs20)) ) ) ).

tff('isSomeExp-0',axiom,
    ~ visSomeExp(vnoExp) ).

tff('isSomeExp-1',axiom,
    ! [VwildcardName0: vExp] : visSomeExp(vsomeExp(VwildcardName0)) ).

tff('isSomeExp-true-INV',axiom,
    ! [VOptExp0: vOptExp] :
      ( visSomeExp(VOptExp0)
     => ? [VwildcardName0: vExp] : ( VOptExp0 = vsomeExp(VwildcardName0) ) ) ).

tff('isSomeExp-false-INV',axiom,
    ! [VOptExp0: vOptExp] :
      ( ~ visSomeExp(VOptExp0)
     => ( VOptExp0 = vnoExp ) ) ).

tff('expIsValue-0',axiom,
    ! [VwildcardName0: vAval] : vexpIsValue(vconstant(VwildcardName0)) ).

tff('expIsValue-1',axiom,
    ! [Ve: vExp] :
      ( ! [VwildcardName00: vAval] : ( Ve != vconstant(VwildcardName00) )
     => ~ vexpIsValue(Ve) ) ).

tff('expIsValue-true-INV',axiom,
    ! [VExp0: vExp] :
      ( vexpIsValue(VExp0)
     => ? [VwildcardName0: vAval] : ( VExp0 = vconstant(VwildcardName0) ) ) ).

tff('expIsValue-false-INV',axiom,
    ! [VExp0: vExp] :
      ( ~ vexpIsValue(VExp0)
     => ? [Ve: vExp] :
          ( ! [VwildcardName00: vAval] : ( Ve != vconstant(VwildcardName00) )
          & ( VExp0 = Ve ) ) ) ).

tff('getAnswer-0',axiom,
    ! [Vl: vLabel] : ( vgetAnswer(Vl,vYesNo) = vB(vaskYesNo(Vl)) ) ).

tff('getAnswer-1',axiom,
    ! [Vl: vLabel] : ( vgetAnswer(Vl,vNumber) = vNum(vaskNumber(Vl)) ) ).

tff('getAnswer-2',axiom,
    ! [Vl: vLabel] : ( vgetAnswer(Vl,vText) = vT(vaskText(Vl)) ) ).

tff('getAnswer-INV',axiom,
    ! [VLabel0: vLabel,VAType0: vAType] :
      ( ? [Vl0: vLabel] :
          ( ( VLabel0 = Vl0 )
          & ( VAType0 = vYesNo )
          & ( vgetAnswer(VLabel0,VAType0) = vB(vaskYesNo(Vl0)) ) )
      | ? [Vl1: vLabel] :
          ( ( VLabel0 = Vl1 )
          & ( VAType0 = vNumber )
          & ( vgetAnswer(VLabel0,VAType0) = vNum(vaskNumber(Vl1)) ) )
      | ? [Vl2: vLabel] :
          ( ( VLabel0 = Vl2 )
          & ( VAType0 = vText )
          & ( vgetAnswer(VLabel0,VAType0) = vT(vaskText(Vl2)) ) ) ) ).

tff('evalBinOp-0',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vevalBinOp(vaddop,vNum(Vn1),vNum(Vn2)) = vsomeExp(vconstant(vNum(vplus(Vn1,Vn2)))) ) ).

tff('evalBinOp-1',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vevalBinOp(vsubop,vNum(Vn1),vNum(Vn2)) = vsomeExp(vconstant(vNum(vminus(Vn1,Vn2)))) ) ).

tff('evalBinOp-2',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vevalBinOp(vmulop,vNum(Vn1),vNum(Vn2)) = vsomeExp(vconstant(vNum(vmultiply(Vn1,Vn2)))) ) ).

tff('evalBinOp-3',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vevalBinOp(vdivop,vNum(Vn1),vNum(Vn2)) = vsomeExp(vconstant(vNum(vdivide(Vn1,Vn2)))) ) ).

tff('evalBinOp-4',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vevalBinOp(vgtop,vNum(Vn1),vNum(Vn2)) = vsomeExp(vconstant(vB(vgt(Vn1,Vn2)))) ) ).

tff('evalBinOp-5',axiom,
    ! [Vn1: vnat,Vn2: vnat] : ( vevalBinOp(vltop,vNum(Vn1),vNum(Vn2)) = vsomeExp(vconstant(vB(vlt(Vn1,Vn2)))) ) ).

tff('evalBinOp-6',axiom,
    ! [Vb1: vYN,Vb2: vYN] : ( vevalBinOp(vandop,vB(Vb1),vB(Vb2)) = vsomeExp(vconstant(vB(vand(Vb1,Vb2)))) ) ).

tff('evalBinOp-7',axiom,
    ! [Vb1: vYN,Vb2: vYN] : ( vevalBinOp(vorop,vB(Vb1),vB(Vb2)) = vsomeExp(vconstant(vB(vor(Vb1,Vb2)))) ) ).

tff('evalBinOp-8',axiom,
    ! [Va1: vAval] : ( vevalBinOp(veqop,Va1,Va1) = vsomeExp(vconstant(vB(vyes))) ) ).

tff('evalBinOp-9',axiom,
    ! [Va: vAval,Va1: vAval] :
      ( ( Va != Va1 )
     => ( vevalBinOp(veqop,Va,Va1) = vsomeExp(vconstant(vB(vno))) ) ) ).

tff('evalBinOp-10',axiom,
    ! [VwildcardName0: vBinOpT,VwildcardName1: vAval,VwildcardName2: vAval] :
      ( ( ( ( VwildcardName0 != vaddop )
          | ! [Vn10: vnat] : ( VwildcardName1 != vNum(Vn10) )
          | ! [Vn20: vnat] : ( VwildcardName2 != vNum(Vn20) ) )
        & ( ( VwildcardName0 != vsubop )
          | ! [Vn10: vnat] : ( VwildcardName1 != vNum(Vn10) )
          | ! [Vn20: vnat] : ( VwildcardName2 != vNum(Vn20) ) )
        & ( ( VwildcardName0 != vmulop )
          | ! [Vn10: vnat] : ( VwildcardName1 != vNum(Vn10) )
          | ! [Vn20: vnat] : ( VwildcardName2 != vNum(Vn20) ) )
        & ( ( VwildcardName0 != vdivop )
          | ! [Vn10: vnat] : ( VwildcardName1 != vNum(Vn10) )
          | ! [Vn20: vnat] : ( VwildcardName2 != vNum(Vn20) ) )
        & ( ( VwildcardName0 != vgtop )
          | ! [Vn10: vnat] : ( VwildcardName1 != vNum(Vn10) )
          | ! [Vn20: vnat] : ( VwildcardName2 != vNum(Vn20) ) )
        & ( ( VwildcardName0 != vltop )
          | ! [Vn10: vnat] : ( VwildcardName1 != vNum(Vn10) )
          | ! [Vn20: vnat] : ( VwildcardName2 != vNum(Vn20) ) )
        & ( ( VwildcardName0 != vandop )
          | ! [Vb10: vYN] : ( VwildcardName1 != vB(Vb10) )
          | ! [Vb20: vYN] : ( VwildcardName2 != vB(Vb20) ) )
        & ( ( VwildcardName0 != vorop )
          | ! [Vb10: vYN] : ( VwildcardName1 != vB(Vb10) )
          | ! [Vb20: vYN] : ( VwildcardName2 != vB(Vb20) ) )
        & ( VwildcardName0 != veqop ) )
     => ( vevalBinOp(VwildcardName0,VwildcardName1,VwildcardName2) = vnoExp ) ) ).

tff('evalBinOp-INV',axiom,
    ! [VBinOpT0: vBinOpT,VAval0: vAval,VAval1: vAval] :
      ( ? [Vn10: vnat,Vn20: vnat] :
          ( ( VBinOpT0 = vaddop )
          & ( VAval0 = vNum(Vn10) )
          & ( VAval1 = vNum(Vn20) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vNum(vplus(Vn10,Vn20)))) ) )
      | ? [Vn11: vnat,Vn21: vnat] :
          ( ( VBinOpT0 = vsubop )
          & ( VAval0 = vNum(Vn11) )
          & ( VAval1 = vNum(Vn21) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vNum(vminus(Vn11,Vn21)))) ) )
      | ? [Vn12: vnat,Vn22: vnat] :
          ( ( VBinOpT0 = vmulop )
          & ( VAval0 = vNum(Vn12) )
          & ( VAval1 = vNum(Vn22) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vNum(vmultiply(Vn12,Vn22)))) ) )
      | ? [Vn13: vnat,Vn23: vnat] :
          ( ( VBinOpT0 = vdivop )
          & ( VAval0 = vNum(Vn13) )
          & ( VAval1 = vNum(Vn23) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vNum(vdivide(Vn13,Vn23)))) ) )
      | ? [Vn14: vnat,Vn24: vnat] :
          ( ( VBinOpT0 = vgtop )
          & ( VAval0 = vNum(Vn14) )
          & ( VAval1 = vNum(Vn24) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vB(vgt(Vn14,Vn24)))) ) )
      | ? [Vn15: vnat,Vn25: vnat] :
          ( ( VBinOpT0 = vltop )
          & ( VAval0 = vNum(Vn15) )
          & ( VAval1 = vNum(Vn25) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vB(vlt(Vn15,Vn25)))) ) )
      | ? [Vb10: vYN,Vb20: vYN] :
          ( ( VBinOpT0 = vandop )
          & ( VAval0 = vB(Vb10) )
          & ( VAval1 = vB(Vb20) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vB(vand(Vb10,Vb20)))) ) )
      | ? [Vb11: vYN,Vb21: vYN] :
          ( ( VBinOpT0 = vorop )
          & ( VAval0 = vB(Vb11) )
          & ( VAval1 = vB(Vb21) )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vB(vor(Vb11,Vb21)))) ) )
      | ? [Va0: vAval,Va10: vAval] :
          ( ( Va0 = Va10 )
          & ( VBinOpT0 = veqop )
          & ( VAval0 = Va0 )
          & ( VAval1 = Va10 )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vB(vyes))) ) )
      | ? [Va11: vAval,Va12: vAval] :
          ( ( Va11 != Va12 )
          & ( VBinOpT0 = veqop )
          & ( VAval0 = Va11 )
          & ( VAval1 = Va12 )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vsomeExp(vconstant(vB(vno))) ) )
      | ? [VwildcardName00: vBinOpT,VwildcardName10: vAval,VwildcardName20: vAval] :
          ( ( ( VwildcardName00 != vaddop )
            | ! [Vn1000: vnat] : ( VwildcardName10 != vNum(Vn1000) )
            | ! [Vn2000: vnat] : ( VwildcardName20 != vNum(Vn2000) ) )
          & ( ( VwildcardName00 != vsubop )
            | ! [Vn1010: vnat] : ( VwildcardName10 != vNum(Vn1010) )
            | ! [Vn2010: vnat] : ( VwildcardName20 != vNum(Vn2010) ) )
          & ( ( VwildcardName00 != vmulop )
            | ! [Vn1020: vnat] : ( VwildcardName10 != vNum(Vn1020) )
            | ! [Vn2020: vnat] : ( VwildcardName20 != vNum(Vn2020) ) )
          & ( ( VwildcardName00 != vdivop )
            | ! [Vn1030: vnat] : ( VwildcardName10 != vNum(Vn1030) )
            | ! [Vn2030: vnat] : ( VwildcardName20 != vNum(Vn2030) ) )
          & ( ( VwildcardName00 != vgtop )
            | ! [Vn1040: vnat] : ( VwildcardName10 != vNum(Vn1040) )
            | ! [Vn2040: vnat] : ( VwildcardName20 != vNum(Vn2040) ) )
          & ( ( VwildcardName00 != vltop )
            | ! [Vn1050: vnat] : ( VwildcardName10 != vNum(Vn1050) )
            | ! [Vn2050: vnat] : ( VwildcardName20 != vNum(Vn2050) ) )
          & ( ( VwildcardName00 != vandop )
            | ! [Vb1000: vYN] : ( VwildcardName10 != vB(Vb1000) )
            | ! [Vb2000: vYN] : ( VwildcardName20 != vB(Vb2000) ) )
          & ( ( VwildcardName00 != vorop )
            | ! [Vb1010: vYN] : ( VwildcardName10 != vB(Vb1010) )
            | ! [Vb2010: vYN] : ( VwildcardName20 != vB(Vb2010) ) )
          & ( VwildcardName00 != veqop )
          & ( VBinOpT0 = VwildcardName00 )
          & ( VAval0 = VwildcardName10 )
          & ( VAval1 = VwildcardName20 )
          & ( vevalBinOp(VBinOpT0,VAval0,VAval1) = vnoExp ) ) ) ).

tff('evalUnOp-0',axiom,
    ! [Vb: vYN] : ( vevalUnOp(vnotop,vB(Vb)) = vsomeExp(vconstant(vB(vnot(Vb)))) ) ).

tff('evalUnOp-1',axiom,
    ! [VwildcardName0: vUnOpT,VwildcardName1: vAval] :
      ( ( ( VwildcardName0 != vnotop )
        | ! [Vb0: vYN] : ( VwildcardName1 != vB(Vb0) ) )
     => ( vevalUnOp(VwildcardName0,VwildcardName1) = vnoExp ) ) ).

tff('evalUnOp-INV',axiom,
    ! [VUnOpT0: vUnOpT,VAval0: vAval] :
      ( ? [Vb0: vYN] :
          ( ( VUnOpT0 = vnotop )
          & ( VAval0 = vB(Vb0) )
          & ( vevalUnOp(VUnOpT0,VAval0) = vsomeExp(vconstant(vB(vnot(Vb0)))) ) )
      | ? [VwildcardName00: vUnOpT,VwildcardName10: vAval] :
          ( ( ( VwildcardName00 != vnotop )
            | ! [Vb000: vYN] : ( VwildcardName10 != vB(Vb000) ) )
          & ( VUnOpT0 = VwildcardName00 )
          & ( VAval0 = VwildcardName10 )
          & ( vevalUnOp(VUnOpT0,VAval0) = vnoExp ) ) ) ).

tff('reduceExp-0',axiom,
    ! [Vav: vAval,VwildcardName0: vAnsMap] : ( vreduceExp(vconstant(Vav),VwildcardName0) = vnoExp ) ).

tff('reduceExp-1',axiom,
    ! [Vqid: vQID,Vam: vAnsMap] :
      ( visSomeAval(vlookupAnsMap(Vqid,Vam))
     => ( vreduceExp(vqvar(Vqid),Vam) = vsomeExp(vconstant(vgetAval(vlookupAnsMap(Vqid,Vam)))) ) ) ).

tff('reduceExp-2',axiom,
    ! [Vqid: vQID,Vam: vAnsMap] :
      ( ~ visSomeAval(vlookupAnsMap(Vqid,Vam))
     => ( vreduceExp(vqvar(Vqid),Vam) = vnoExp ) ) ).

tff('reduceExp-3',axiom,
    ! [Ve1: vExp,Ve2: vExp,Vop: vBinOpT,Vam: vAnsMap] :
      ( ( vexpIsValue(Ve1)
        & vexpIsValue(Ve2) )
     => ( vreduceExp(vbinop(Ve1,Vop,Ve2),Vam) = vevalBinOp(Vop,vgetExpValue(Ve1),vgetExpValue(Ve2)) ) ) ).

tff('reduceExp-4',axiom,
    ! [Ve1: vExp,Ve2: vExp,Vam: vAnsMap,Vop: vBinOpT] :
      ( ( vexpIsValue(Ve1)
        & ~ vexpIsValue(Ve2)
        & visSomeExp(vreduceExp(Ve2,Vam)) )
     => ( vreduceExp(vbinop(Ve1,Vop,Ve2),Vam) = vsomeExp(vbinop(Ve1,Vop,vgetExp(vreduceExp(Ve2,Vam)))) ) ) ).

tff('reduceExp-5',axiom,
    ! [Ve1: vExp,Ve2: vExp,Vam: vAnsMap,Vop: vBinOpT] :
      ( ( vexpIsValue(Ve1)
        & ~ vexpIsValue(Ve2)
        & ~ visSomeExp(vreduceExp(Ve2,Vam)) )
     => ( vreduceExp(vbinop(Ve1,Vop,Ve2),Vam) = vnoExp ) ) ).

tff('reduceExp-6',axiom,
    ! [Ve1: vExp,Vam: vAnsMap,Vop: vBinOpT,Ve2: vExp] :
      ( ( ~ vexpIsValue(Ve1)
        & visSomeExp(vreduceExp(Ve1,Vam)) )
     => ( vreduceExp(vbinop(Ve1,Vop,Ve2),Vam) = vsomeExp(vbinop(vgetExp(vreduceExp(Ve1,Vam)),Vop,Ve2)) ) ) ).

tff('reduceExp-7',axiom,
    ! [Ve1: vExp,Vam: vAnsMap,Vop: vBinOpT,Ve2: vExp] :
      ( ( ~ vexpIsValue(Ve1)
        & ~ visSomeExp(vreduceExp(Ve1,Vam)) )
     => ( vreduceExp(vbinop(Ve1,Vop,Ve2),Vam) = vnoExp ) ) ).

tff('reduceExp-8',axiom,
    ! [Ve1: vExp,Vop: vUnOpT,Vam: vAnsMap] :
      ( vexpIsValue(Ve1)
     => ( vreduceExp(vunop(Vop,Ve1),Vam) = vevalUnOp(Vop,vgetExpValue(Ve1)) ) ) ).

tff('reduceExp-9',axiom,
    ! [Ve1: vExp,Vam: vAnsMap,Vop: vUnOpT] :
      ( ( ~ vexpIsValue(Ve1)
        & visSomeExp(vreduceExp(Ve1,Vam)) )
     => ( vreduceExp(vunop(Vop,Ve1),Vam) = vsomeExp(vunop(Vop,vgetExp(vreduceExp(Ve1,Vam)))) ) ) ).

tff('reduceExp-10',axiom,
    ! [Ve1: vExp,Vam: vAnsMap,Vop: vUnOpT] :
      ( ( ~ vexpIsValue(Ve1)
        & ~ visSomeExp(vreduceExp(Ve1,Vam)) )
     => ( vreduceExp(vunop(Vop,Ve1),Vam) = vnoExp ) ) ).

tff('reduceExp-INV',axiom,
    ! [VExp0: vExp,VAnsMap0: vAnsMap] :
      ( ? [Vav0: vAval,VwildcardName00: vAnsMap] :
          ( ( VExp0 = vconstant(Vav0) )
          & ( VAnsMap0 = VwildcardName00 )
          & ( vreduceExp(VExp0,VAnsMap0) = vnoExp ) )
      | ? [Vqid0: vQID,VavOpt0: vOptAval,Vam0: vAnsMap] :
          ( ( VavOpt0 = vlookupAnsMap(Vqid0,Vam0) )
          & visSomeAval(VavOpt0)
          & ( VExp0 = vqvar(Vqid0) )
          & ( VAnsMap0 = Vam0 )
          & ( vreduceExp(VExp0,VAnsMap0) = vsomeExp(vconstant(vgetAval(VavOpt0))) ) )
      | ? [Vqid1: vQID,VavOpt1: vOptAval,Vam1: vAnsMap] :
          ( ( VavOpt1 = vlookupAnsMap(Vqid1,Vam1) )
          & ~ visSomeAval(VavOpt1)
          & ( VExp0 = vqvar(Vqid1) )
          & ( VAnsMap0 = Vam1 )
          & ( vreduceExp(VExp0,VAnsMap0) = vnoExp ) )
      | ? [Ve10: vExp,Vop0: vBinOpT,Ve20: vExp,Vam2: vAnsMap] :
          ( vexpIsValue(Ve10)
          & vexpIsValue(Ve20)
          & ( VExp0 = vbinop(Ve10,Vop0,Ve20) )
          & ( VAnsMap0 = Vam2 )
          & ( vreduceExp(VExp0,VAnsMap0) = vevalBinOp(Vop0,vgetExpValue(Ve10),vgetExpValue(Ve20)) ) )
      | ? [Ve11: vExp,VeOpt20: vOptExp,Vam3: vAnsMap,Ve21: vExp,Vop1: vBinOpT] :
          ( vexpIsValue(Ve11)
          & ~ vexpIsValue(Ve21)
          & ( VeOpt20 = vreduceExp(Ve21,Vam3) )
          & visSomeExp(VeOpt20)
          & ( VExp0 = vbinop(Ve11,Vop1,Ve21) )
          & ( VAnsMap0 = Vam3 )
          & ( vreduceExp(VExp0,VAnsMap0) = vsomeExp(vbinop(Ve11,Vop1,vgetExp(VeOpt20))) ) )
      | ? [Ve12: vExp,VeOpt21: vOptExp,Vam4: vAnsMap,Ve22: vExp,Vop2: vBinOpT] :
          ( vexpIsValue(Ve12)
          & ~ vexpIsValue(Ve22)
          & ( VeOpt21 = vreduceExp(Ve22,Vam4) )
          & ~ visSomeExp(VeOpt21)
          & ( VExp0 = vbinop(Ve12,Vop2,Ve22) )
          & ( VAnsMap0 = Vam4 )
          & ( vreduceExp(VExp0,VAnsMap0) = vnoExp ) )
      | ? [Ve13: vExp,VeOpt10: vOptExp,Vam5: vAnsMap,Ve23: vExp,Vop3: vBinOpT] :
          ( ~ vexpIsValue(Ve13)
          & ( VeOpt10 = vreduceExp(Ve13,Vam5) )
          & visSomeExp(VeOpt10)
          & ( VExp0 = vbinop(Ve13,Vop3,Ve23) )
          & ( VAnsMap0 = Vam5 )
          & ( vreduceExp(VExp0,VAnsMap0) = vsomeExp(vbinop(vgetExp(VeOpt10),Vop3,Ve23)) ) )
      | ? [Ve14: vExp,VeOpt11: vOptExp,Vam6: vAnsMap,Ve24: vExp,Vop4: vBinOpT] :
          ( ~ vexpIsValue(Ve14)
          & ( VeOpt11 = vreduceExp(Ve14,Vam6) )
          & ~ visSomeExp(VeOpt11)
          & ( VExp0 = vbinop(Ve14,Vop4,Ve24) )
          & ( VAnsMap0 = Vam6 )
          & ( vreduceExp(VExp0,VAnsMap0) = vnoExp ) )
      | ? [Vop5: vUnOpT,Ve15: vExp,Vam7: vAnsMap] :
          ( vexpIsValue(Ve15)
          & ( VExp0 = vunop(Vop5,Ve15) )
          & ( VAnsMap0 = Vam7 )
          & ( vreduceExp(VExp0,VAnsMap0) = vevalUnOp(Vop5,vgetExpValue(Ve15)) ) )
      | ? [Vop6: vUnOpT,Ve16: vExp,VeOpt0: vOptExp,Vam8: vAnsMap] :
          ( ~ vexpIsValue(Ve16)
          & ( VeOpt0 = vreduceExp(Ve16,Vam8) )
          & visSomeExp(VeOpt0)
          & ( VExp0 = vunop(Vop6,Ve16) )
          & ( VAnsMap0 = Vam8 )
          & ( vreduceExp(VExp0,VAnsMap0) = vsomeExp(vunop(Vop6,vgetExp(VeOpt0))) ) )
      | ? [Vop7: vUnOpT,Ve17: vExp,VeOpt12: vOptExp,Vam9: vAnsMap] :
          ( ~ vexpIsValue(Ve17)
          & ( VeOpt12 = vreduceExp(Ve17,Vam9) )
          & ~ visSomeExp(VeOpt12)
          & ( VExp0 = vunop(Vop7,Ve17) )
          & ( VAnsMap0 = Vam9 )
          & ( vreduceExp(VExp0,VAnsMap0) = vnoExp ) ) ) ).

tff('reduce-0',axiom,
    ! [VwildcardName0: vAnsMap,VwildcardName1: vQMap] : ( vreduce(vqempty,VwildcardName0,VwildcardName1) = vnoQConf ) ).

tff('reduce-1',axiom,
    ! [Vqm: vQMap,Vt: vAType,Vl: vLabel,Vam: vAnsMap,Vqid: vQID] : ( vreduce(vqsingle(vquestion(Vqid,Vl,Vt)),Vam,Vqm) = vsomeQConf(vQC(vabind(Vqid,vgetAnswer(Vl,Vt),Vam),Vqm,vqempty)) ) ).

tff('reduce-2',axiom,
    ! [Vqm: vQMap,Vt: vAType,Vam: vAnsMap,Vqid: vQID,Vexp: vExp] :
      ( vexpIsValue(Vexp)
     => ( vreduce(vqsingle(vvalue(Vqid,Vt,Vexp)),Vam,Vqm) = vsomeQConf(vQC(vabind(Vqid,vgetExpValue(Vexp),Vam),Vqm,vqempty)) ) ) ).

tff('reduce-3',axiom,
    ! [Vqm: vQMap,Vt: vAType,Vam: vAnsMap,Vqid: vQID,Vexp: vExp] :
      ( ( ~ vexpIsValue(Vexp)
        & visSomeExp(vreduceExp(Vexp,Vam)) )
     => ( vreduce(vqsingle(vvalue(Vqid,Vt,Vexp)),Vam,Vqm) = vsomeQConf(vQC(Vam,Vqm,vqsingle(vvalue(Vqid,Vt,vgetExp(vreduceExp(Vexp,Vam)))))) ) ) ).

tff('reduce-4',axiom,
    ! [Vqm: vQMap,Vt: vAType,Vam: vAnsMap,Vqid: vQID,Vexp: vExp] :
      ( ( ~ vexpIsValue(Vexp)
        & ~ visSomeExp(vreduceExp(Vexp,Vam)) )
     => ( vreduce(vqsingle(vvalue(Vqid,Vt,Vexp)),Vam,Vqm) = vnoQConf ) ) ).

tff('reduce-5',axiom,
    ! [Vqm: vQMap,Vt: vAType,Vl: vLabel,Vam: vAnsMap,Vqid: vQID] : ( vreduce(vqsingle(vdefquestion(Vqid,Vl,Vt)),Vam,Vqm) = vsomeQConf(vQC(Vam,vqmbind(Vqid,Vl,Vt,Vqm),vqempty)) ) ).

tff('reduce-6',axiom,
    ! [Vqid: vQID,Vqm: vQMap,Vam: vAnsMap] :
      ( visSomeQuestion(vlookupQMap(Vqid,Vqm))
     => ( vreduce(vqsingle(vask(Vqid)),Vam,Vqm) = vsomeQConf(vQC(Vam,Vqm,vqsingle(vquestion(Vqid,vgetQuestionLabel(vlookupQMap(Vqid,Vqm)),vgetQuestionAType(vlookupQMap(Vqid,Vqm)))))) ) ) ).

tff('reduce-7',axiom,
    ! [Vqid: vQID,Vqm: vQMap,Vam: vAnsMap] :
      ( ~ visSomeQuestion(vlookupQMap(Vqid,Vqm))
     => ( vreduce(vqsingle(vask(Vqid)),Vam,Vqm) = vnoQConf ) ) ).

tff('reduce-8',axiom,
    ! [Vqs: vQuestionnaire,Vam: vAnsMap,Vqm: vQMap] : ( vreduce(vqseq(vqempty,Vqs),Vam,Vqm) = vsomeQConf(vQC(Vam,Vqm,Vqs)) ) ).

tff('reduce-9',axiom,
    ! [Vqs1: vQuestionnaire,Vqs2: vQuestionnaire,Vam: vAnsMap,Vqm: vQMap] :
      ( ( ! [Vqs00: vQuestionnaire] :
            ( ( Vqs1 != vqempty )
            | ( Vqs2 != Vqs00 ) )
        & visSomeQC(vreduce(Vqs1,Vam,Vqm)) )
     => ( vreduce(vqseq(Vqs1,Vqs2),Vam,Vqm) = vsomeQConf(vqcappend(vgetQC(vreduce(Vqs1,Vam,Vqm)),Vqs2)) ) ) ).

tff('reduce-10',axiom,
    ! [Vqs1: vQuestionnaire,Vqs2: vQuestionnaire,Vam: vAnsMap,Vqm: vQMap] :
      ( ( ! [Vqs00: vQuestionnaire] :
            ( ( Vqs1 != vqempty )
            | ( Vqs2 != Vqs00 ) )
        & ~ visSomeQC(vreduce(Vqs1,Vam,Vqm)) )
     => ( vreduce(vqseq(Vqs1,Vqs2),Vam,Vqm) = vnoQConf ) ) ).

tff('reduce-11',axiom,
    ! [Vqs1: vQuestionnaire,Vqs2: vQuestionnaire,Vam: vAnsMap,Vqm: vQMap] : ( vreduce(vqcond(vconstant(vB(vyes)),Vqs1,Vqs2),Vam,Vqm) = vsomeQConf(vQC(Vam,Vqm,Vqs1)) ) ).

tff('reduce-12',axiom,
    ! [Vqs1: vQuestionnaire,Vqs2: vQuestionnaire,Vam: vAnsMap,Vqm: vQMap] : ( vreduce(vqcond(vconstant(vB(vno)),Vqs1,Vqs2),Vam,Vqm) = vsomeQConf(vQC(Vam,Vqm,Vqs2)) ) ).

tff('reduce-13',axiom,
    ! [Vqm: vQMap,Vqs1: vQuestionnaire,Ve: vExp,Vam: vAnsMap,Vqs2: vQuestionnaire] :
      ( ( ! [Vqs100: vQuestionnaire,Vqs200: vQuestionnaire] :
            ( ( Ve != vconstant(vB(vyes)) )
            | ( Vqs1 != Vqs100 )
            | ( Vqs2 != Vqs200 ) )
        & ! [Vqs101: vQuestionnaire,Vqs201: vQuestionnaire] :
            ( ( Ve != vconstant(vB(vno)) )
            | ( Vqs1 != Vqs101 )
            | ( Vqs2 != Vqs201 ) )
        & visSomeExp(vreduceExp(Ve,Vam)) )
     => ( vreduce(vqcond(Ve,Vqs1,Vqs2),Vam,Vqm) = vsomeQConf(vQC(Vam,Vqm,vqcond(vgetExp(vreduceExp(Ve,Vam)),Vqs1,Vqs2))) ) ) ).

tff('reduce-14',axiom,
    ! [Vqm: vQMap,Vqs1: vQuestionnaire,Ve: vExp,Vam: vAnsMap,Vqs2: vQuestionnaire] :
      ( ( ! [Vqs100: vQuestionnaire,Vqs200: vQuestionnaire] :
            ( ( Ve != vconstant(vB(vyes)) )
            | ( Vqs1 != Vqs100 )
            | ( Vqs2 != Vqs200 ) )
        & ! [Vqs101: vQuestionnaire,Vqs201: vQuestionnaire] :
            ( ( Ve != vconstant(vB(vno)) )
            | ( Vqs1 != Vqs101 )
            | ( Vqs2 != Vqs201 ) )
        & ~ visSomeExp(vreduceExp(Ve,Vam)) )
     => ( vreduce(vqcond(Ve,Vqs1,Vqs2),Vam,Vqm) = vnoQConf ) ) ).

tff('reduce-15',axiom,
    ! [VwildcardName0: vGID,Vqs: vQuestionnaire,Vam: vAnsMap,Vqm: vQMap] : ( vreduce(vqgroup(VwildcardName0,Vqs),Vam,Vqm) = vsomeQConf(vQC(Vam,Vqm,Vqs)) ) ).

tff('reduce-INV',axiom,
    ! [VQuestionnaire0: vQuestionnaire,VAnsMap0: vAnsMap,VQMap0: vQMap] :
      ( ? [VwildcardName00: vAnsMap,VwildcardName10: vQMap] :
          ( ( VQuestionnaire0 = vqempty )
          & ( VAnsMap0 = VwildcardName00 )
          & ( VQMap0 = VwildcardName10 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vnoQConf ) )
      | ? [Vqm0: vQMap,Vt0: vAType,Vl0: vLabel,Vav0: vAval,Vam0: vAnsMap,Vqid0: vQID] :
          ( ( Vav0 = vgetAnswer(Vl0,Vt0) )
          & ( VQuestionnaire0 = vqsingle(vquestion(Vqid0,Vl0,Vt0)) )
          & ( VAnsMap0 = Vam0 )
          & ( VQMap0 = Vqm0 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(vabind(Vqid0,Vav0,Vam0),Vqm0,vqempty)) ) )
      | ? [Vqm1: vQMap,Vt1: vAType,Vam1: vAnsMap,Vqid1: vQID,Vexp0: vExp] :
          ( vexpIsValue(Vexp0)
          & ( VQuestionnaire0 = vqsingle(vvalue(Vqid1,Vt1,Vexp0)) )
          & ( VAnsMap0 = Vam1 )
          & ( VQMap0 = Vqm1 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(vabind(Vqid1,vgetExpValue(Vexp0),Vam1),Vqm1,vqempty)) ) )
      | ? [Vqm2: vQMap,Vt2: vAType,VeOpt0: vOptExp,Vam2: vAnsMap,Vqid2: vQID,Vexp1: vExp] :
          ( ~ vexpIsValue(Vexp1)
          & ( VeOpt0 = vreduceExp(Vexp1,Vam2) )
          & visSomeExp(VeOpt0)
          & ( VQuestionnaire0 = vqsingle(vvalue(Vqid2,Vt2,Vexp1)) )
          & ( VAnsMap0 = Vam2 )
          & ( VQMap0 = Vqm2 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam2,Vqm2,vqsingle(vvalue(Vqid2,Vt2,vgetExp(VeOpt0))))) ) )
      | ? [Vqm3: vQMap,Vt3: vAType,VeOpt1: vOptExp,Vam3: vAnsMap,Vqid3: vQID,Vexp2: vExp] :
          ( ~ vexpIsValue(Vexp2)
          & ( VeOpt1 = vreduceExp(Vexp2,Vam3) )
          & ~ visSomeExp(VeOpt1)
          & ( VQuestionnaire0 = vqsingle(vvalue(Vqid3,Vt3,Vexp2)) )
          & ( VAnsMap0 = Vam3 )
          & ( VQMap0 = Vqm3 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vnoQConf ) )
      | ? [Vqm4: vQMap,Vt4: vAType,Vl1: vLabel,Vam4: vAnsMap,Vqid4: vQID] :
          ( ( VQuestionnaire0 = vqsingle(vdefquestion(Vqid4,Vl1,Vt4)) )
          & ( VAnsMap0 = Vam4 )
          & ( VQMap0 = Vqm4 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam4,vqmbind(Vqid4,Vl1,Vt4,Vqm4),vqempty)) ) )
      | ? [Vqid5: vQID,VqOpt0: vOptQuestion,Vqm5: vQMap,Vam5: vAnsMap] :
          ( ( VqOpt0 = vlookupQMap(Vqid5,Vqm5) )
          & visSomeQuestion(VqOpt0)
          & ( VQuestionnaire0 = vqsingle(vask(Vqid5)) )
          & ( VAnsMap0 = Vam5 )
          & ( VQMap0 = Vqm5 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam5,Vqm5,vqsingle(vquestion(Vqid5,vgetQuestionLabel(VqOpt0),vgetQuestionAType(VqOpt0))))) ) )
      | ? [Vqid6: vQID,VqOpt1: vOptQuestion,Vqm6: vQMap,Vam6: vAnsMap] :
          ( ( VqOpt1 = vlookupQMap(Vqid6,Vqm6) )
          & ~ visSomeQuestion(VqOpt1)
          & ( VQuestionnaire0 = vqsingle(vask(Vqid6)) )
          & ( VAnsMap0 = Vam6 )
          & ( VQMap0 = Vqm6 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vnoQConf ) )
      | ? [Vqs0: vQuestionnaire,Vam7: vAnsMap,Vqm7: vQMap] :
          ( ( VQuestionnaire0 = vqseq(vqempty,Vqs0) )
          & ( VAnsMap0 = Vam7 )
          & ( VQMap0 = Vqm7 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam7,Vqm7,Vqs0)) ) )
      | ? [Vqm8: vQMap,Vqs10: vQuestionnaire,Vam8: vAnsMap,Vqs20: vQuestionnaire,VqcOpt0: vOptQConf] :
          ( ! [Vqs000: vQuestionnaire] :
              ( ( Vqs10 != vqempty )
              | ( Vqs20 != Vqs000 ) )
          & ( VqcOpt0 = vreduce(Vqs10,Vam8,Vqm8) )
          & visSomeQC(VqcOpt0)
          & ( VQuestionnaire0 = vqseq(Vqs10,Vqs20) )
          & ( VAnsMap0 = Vam8 )
          & ( VQMap0 = Vqm8 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vqcappend(vgetQC(VqcOpt0),Vqs20)) ) )
      | ? [Vqm9: vQMap,Vqs11: vQuestionnaire,Vam9: vAnsMap,Vqs21: vQuestionnaire,VqcOpt1: vOptQConf] :
          ( ! [Vqs010: vQuestionnaire] :
              ( ( Vqs11 != vqempty )
              | ( Vqs21 != Vqs010 ) )
          & ( VqcOpt1 = vreduce(Vqs11,Vam9,Vqm9) )
          & ~ visSomeQC(VqcOpt1)
          & ( VQuestionnaire0 = vqseq(Vqs11,Vqs21) )
          & ( VAnsMap0 = Vam9 )
          & ( VQMap0 = Vqm9 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vnoQConf ) )
      | ? [Vqs12: vQuestionnaire,Vqs22: vQuestionnaire,Vam10: vAnsMap,Vqm10: vQMap] :
          ( ( VQuestionnaire0 = vqcond(vconstant(vB(vyes)),Vqs12,Vqs22) )
          & ( VAnsMap0 = Vam10 )
          & ( VQMap0 = Vqm10 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam10,Vqm10,Vqs12)) ) )
      | ? [Vqs13: vQuestionnaire,Vqs23: vQuestionnaire,Vam11: vAnsMap,Vqm11: vQMap] :
          ( ( VQuestionnaire0 = vqcond(vconstant(vB(vno)),Vqs13,Vqs23) )
          & ( VAnsMap0 = Vam11 )
          & ( VQMap0 = Vqm11 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam11,Vqm11,Vqs23)) ) )
      | ? [Vqm12: vQMap,VeOpt2: vOptExp,Vqs14: vQuestionnaire,Ve0: vExp,Vam12: vAnsMap,Vqs24: vQuestionnaire] :
          ( ! [Vqs1010: vQuestionnaire,Vqs2010: vQuestionnaire] :
              ( ( Ve0 != vconstant(vB(vyes)) )
              | ( Vqs14 != Vqs1010 )
              | ( Vqs24 != Vqs2010 ) )
          & ! [Vqs1020: vQuestionnaire,Vqs2020: vQuestionnaire] :
              ( ( Ve0 != vconstant(vB(vno)) )
              | ( Vqs14 != Vqs1020 )
              | ( Vqs24 != Vqs2020 ) )
          & ( VeOpt2 = vreduceExp(Ve0,Vam12) )
          & visSomeExp(VeOpt2)
          & ( VQuestionnaire0 = vqcond(Ve0,Vqs14,Vqs24) )
          & ( VAnsMap0 = Vam12 )
          & ( VQMap0 = Vqm12 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam12,Vqm12,vqcond(vgetExp(VeOpt2),Vqs14,Vqs24))) ) )
      | ? [Vqm13: vQMap,VeOpt3: vOptExp,Vqs15: vQuestionnaire,Ve1: vExp,Vam13: vAnsMap,Vqs25: vQuestionnaire] :
          ( ! [Vqs1030: vQuestionnaire,Vqs2030: vQuestionnaire] :
              ( ( Ve1 != vconstant(vB(vyes)) )
              | ( Vqs15 != Vqs1030 )
              | ( Vqs25 != Vqs2030 ) )
          & ! [Vqs1040: vQuestionnaire,Vqs2040: vQuestionnaire] :
              ( ( Ve1 != vconstant(vB(vno)) )
              | ( Vqs15 != Vqs1040 )
              | ( Vqs25 != Vqs2040 ) )
          & ( VeOpt3 = vreduceExp(Ve1,Vam13) )
          & ~ visSomeExp(VeOpt3)
          & ( VQuestionnaire0 = vqcond(Ve1,Vqs15,Vqs25) )
          & ( VAnsMap0 = Vam13 )
          & ( VQMap0 = Vqm13 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vnoQConf ) )
      | ? [VwildcardName01: vGID,Vqs16: vQuestionnaire,Vam14: vAnsMap,Vqm14: vQMap] :
          ( ( VQuestionnaire0 = vqgroup(VwildcardName01,Vqs16) )
          & ( VAnsMap0 = Vam14 )
          & ( VQMap0 = Vqm14 )
          & ( vreduce(VQuestionnaire0,VAnsMap0,VQMap0) = vsomeQConf(vQC(Vam14,Vqm14,Vqs16)) ) ) ) ).

tff('lookupATMap-0',axiom,
    ! [VwildcardName0: vQID] : ( vlookupATMap(VwildcardName0,vatmempty) = vnoAType ) ).

tff('lookupATMap-1',axiom,
    ! [Vqid2: vQID,Vat: vAType,Vatml: vATMap] : ( vlookupATMap(Vqid2,vatmbind(Vqid2,Vat,Vatml)) = vsomeAType(Vat) ) ).

tff('lookupATMap-2',axiom,
    ! [Vqid1: vQID,Vqid2: vQID,Vat: vAType,Vatml: vATMap] :
      ( ( Vqid1 != Vqid2 )
     => ( vlookupATMap(Vqid1,vatmbind(Vqid2,Vat,Vatml)) = vlookupATMap(Vqid1,Vatml) ) ) ).

tff('lookupATMap-INV',axiom,
    ! [VQID0: vQID,VATMap0: vATMap] :
      ( ? [VwildcardName00: vQID] :
          ( ( VQID0 = VwildcardName00 )
          & ( VATMap0 = vatmempty )
          & ( vlookupATMap(VQID0,VATMap0) = vnoAType ) )
      | ? [Vqid20: vQID,Vat0: vAType,Vatml0: vATMap,Vqid10: vQID] :
          ( ( Vqid10 = Vqid20 )
          & ( VQID0 = Vqid10 )
          & ( VATMap0 = vatmbind(Vqid20,Vat0,Vatml0) )
          & ( vlookupATMap(VQID0,VATMap0) = vsomeAType(Vat0) ) )
      | ? [Vqid21: vQID,Vat1: vAType,Vatml1: vATMap,Vqid11: vQID] :
          ( ( Vqid11 != Vqid21 )
          & ( VQID0 = Vqid11 )
          & ( VATMap0 = vatmbind(Vqid21,Vat1,Vatml1) )
          & ( vlookupATMap(VQID0,VATMap0) = vlookupATMap(Vqid11,Vatml1) ) ) ) ).

tff('appendATMap-0',axiom,
    ! [Vatm: vATMap] : ( vappendATMap(vatmempty,Vatm) = Vatm ) ).

tff('appendATMap-1',axiom,
    ! [Vqid: vQID,Vat: vAType,Vatm: vATMap,Vatml: vATMap] : ( vappendATMap(vatmbind(Vqid,Vat,Vatm),Vatml) = vatmbind(Vqid,Vat,vappendATMap(Vatm,Vatml)) ) ).

tff('appendATMap-INV',axiom,
    ! [VATMap0: vATMap,VATMap1: vATMap] :
      ( ? [Vatm0: vATMap] :
          ( ( VATMap0 = vatmempty )
          & ( VATMap1 = Vatm0 )
          & ( vappendATMap(VATMap0,VATMap1) = Vatm0 ) )
      | ? [Vqid0: vQID,Vat0: vAType,Vatm1: vATMap,Vatml0: vATMap] :
          ( ( VATMap0 = vatmbind(Vqid0,Vat0,Vatm1) )
          & ( VATMap1 = Vatml0 )
          & ( vappendATMap(VATMap0,VATMap1) = vatmbind(Vqid0,Vat0,vappendATMap(Vatm1,Vatml0)) ) ) ) ).

tff('intersectATM-0',axiom,
    ! [VwildcardName0: vATMap] : ( vintersectATM(vatmempty,VwildcardName0) = vatmempty ) ).

tff('intersectATM-1',axiom,
    ! [Vqid: vQID,Vatm2: vATMap,Vat: vAType,Vatm1: vATMap] :
      ( ( visSomeAType(vlookupATMap(Vqid,Vatm2))
        & ( vgetAType(vlookupATMap(Vqid,Vatm2)) = Vat ) )
     => ( vintersectATM(vatmbind(Vqid,Vat,Vatm1),Vatm2) = vatmbind(Vqid,Vat,vintersectATM(Vatm1,Vatm2)) ) ) ).

tff('intersectATM-2',axiom,
    ! [Vqid: vQID,Vatm2: vATMap,Vat: vAType,Vatm1: vATMap] :
      ( ~ ( visSomeAType(vlookupATMap(Vqid,Vatm2))
          & ( vgetAType(vlookupATMap(Vqid,Vatm2)) = Vat ) )
     => ( vintersectATM(vatmbind(Vqid,Vat,Vatm1),Vatm2) = vintersectATM(Vatm1,Vatm2) ) ) ).

tff('intersectATM-INV',axiom,
    ! [VATMap0: vATMap,VATMap1: vATMap] :
      ( ? [VwildcardName00: vATMap] :
          ( ( VATMap0 = vatmempty )
          & ( VATMap1 = VwildcardName00 )
          & ( vintersectATM(VATMap0,VATMap1) = vatmempty ) )
      | ? [Vatm20: vATMap,Vatm1atm20: vATMap,VlAT0: vOptAType,Vat0: vAType,Vatm10: vATMap,Vqid0: vQID] :
          ( ( Vatm1atm20 = vintersectATM(Vatm10,Vatm20) )
          & ( VlAT0 = vlookupATMap(Vqid0,Vatm20) )
          & visSomeAType(VlAT0)
          & ( vgetAType(VlAT0) = Vat0 )
          & ( VATMap0 = vatmbind(Vqid0,Vat0,Vatm10) )
          & ( VATMap1 = Vatm20 )
          & ( vintersectATM(VATMap0,VATMap1) = vatmbind(Vqid0,Vat0,Vatm1atm20) ) )
      | ? [Vatm21: vATMap,Vatm1atm21: vATMap,VlAT1: vOptAType,Vat1: vAType,Vatm11: vATMap,Vqid1: vQID] :
          ( ( Vatm1atm21 = vintersectATM(Vatm11,Vatm21) )
          & ( VlAT1 = vlookupATMap(Vqid1,Vatm21) )
          & ~ ( visSomeAType(VlAT1)
              & ( vgetAType(VlAT1) = Vat1 ) )
          & ( VATMap0 = vatmbind(Vqid1,Vat1,Vatm11) )
          & ( VATMap1 = Vatm21 )
          & ( vintersectATM(VATMap0,VATMap1) = Vatm1atm21 ) ) ) ).

tff('isSomeMapConf-0',axiom,
    ~ visSomeMapConf(vnoMapConf) ).

tff('isSomeMapConf-1',axiom,
    ! [VwildcardName0: vMapConf] : visSomeMapConf(vsomeMapConf(VwildcardName0)) ).

tff('isSomeMapConf-true-INV',axiom,
    ! [VOptMapConf0: vOptMapConf] :
      ( visSomeMapConf(VOptMapConf0)
     => ? [VwildcardName0: vMapConf] : ( VOptMapConf0 = vsomeMapConf(VwildcardName0) ) ) ).

tff('isSomeMapConf-false-INV',axiom,
    ! [VOptMapConf0: vOptMapConf] :
      ( ~ visSomeMapConf(VOptMapConf0)
     => ( VOptMapConf0 = vnoMapConf ) ) ).

tff('typeAM-0',axiom,
    vtypeAM(vaempty) = vatmempty ).

tff('typeAM-1',axiom,
    ! [Vqid: vQID,Vav: vAval,Vamr: vAnsMap] : ( vtypeAM(vabind(Vqid,Vav,Vamr)) = vatmbind(Vqid,vtypeOf(Vav),vtypeAM(Vamr)) ) ).

tff('typeAM-INV',axiom,
    ! [VAnsMap0: vAnsMap] :
      ( ( ( VAnsMap0 = vaempty )
        & ( vtypeAM(VAnsMap0) = vatmempty ) )
      | ? [Vqid0: vQID,Vav0: vAval,Vamr0: vAnsMap] :
          ( ( VAnsMap0 = vabind(Vqid0,Vav0,Vamr0) )
          & ( vtypeAM(VAnsMap0) = vatmbind(Vqid0,vtypeOf(Vav0),vtypeAM(Vamr0)) ) ) ) ).

tff('typeQM-0',axiom,
    vtypeQM(vqmempty) = vatmempty ).

tff('typeQM-1',axiom,
    ! [Vqid: vQID,VwildcardName0: vLabel,Vat: vAType,Vqmr: vQMap] : ( vtypeQM(vqmbind(Vqid,VwildcardName0,Vat,Vqmr)) = vatmbind(Vqid,Vat,vtypeQM(Vqmr)) ) ).

tff('typeQM-INV',axiom,
    ! [VQMap0: vQMap] :
      ( ( ( VQMap0 = vqmempty )
        & ( vtypeQM(VQMap0) = vatmempty ) )
      | ? [Vqid0: vQID,VwildcardName00: vLabel,Vat0: vAType,Vqmr0: vQMap] :
          ( ( VQMap0 = vqmbind(Vqid0,VwildcardName00,Vat0,Vqmr0) )
          & ( vtypeQM(VQMap0) = vatmbind(Vqid0,Vat0,vtypeQM(Vqmr0)) ) ) ) ).

tff('checkBinOp-0',axiom,
    vcheckBinOp(vaddop,vNumber,vNumber) = vsomeAType(vNumber) ).

tff('checkBinOp-1',axiom,
    vcheckBinOp(vsubop,vNumber,vNumber) = vsomeAType(vNumber) ).

tff('checkBinOp-2',axiom,
    vcheckBinOp(vmulop,vNumber,vNumber) = vsomeAType(vNumber) ).

tff('checkBinOp-3',axiom,
    vcheckBinOp(vdivop,vNumber,vNumber) = vsomeAType(vNumber) ).

tff('checkBinOp-4',axiom,
    vcheckBinOp(vgtop,vNumber,vNumber) = vsomeAType(vYesNo) ).

tff('checkBinOp-5',axiom,
    vcheckBinOp(vltop,vNumber,vNumber) = vsomeAType(vYesNo) ).

tff('checkBinOp-6',axiom,
    vcheckBinOp(vandop,vYesNo,vYesNo) = vsomeAType(vYesNo) ).

tff('checkBinOp-7',axiom,
    vcheckBinOp(vorop,vYesNo,vYesNo) = vsomeAType(vYesNo) ).

tff('checkBinOp-8',axiom,
    ! [VwildcardName0: vAType,VwildcardName1: vAType] : ( vcheckBinOp(veqop,VwildcardName0,VwildcardName1) = vsomeAType(vYesNo) ) ).

tff('checkBinOp-9',axiom,
    ! [VwildcardName0: vBinOpT,VwildcardName1: vAType,VwildcardName2: vAType] :
      ( ( ( ( VwildcardName0 != vaddop )
          | ( VwildcardName1 != vNumber )
          | ( VwildcardName2 != vNumber ) )
        & ( ( VwildcardName0 != vsubop )
          | ( VwildcardName1 != vNumber )
          | ( VwildcardName2 != vNumber ) )
        & ( ( VwildcardName0 != vmulop )
          | ( VwildcardName1 != vNumber )
          | ( VwildcardName2 != vNumber ) )
        & ( ( VwildcardName0 != vdivop )
          | ( VwildcardName1 != vNumber )
          | ( VwildcardName2 != vNumber ) )
        & ( ( VwildcardName0 != vgtop )
          | ( VwildcardName1 != vNumber )
          | ( VwildcardName2 != vNumber ) )
        & ( ( VwildcardName0 != vltop )
          | ( VwildcardName1 != vNumber )
          | ( VwildcardName2 != vNumber ) )
        & ( ( VwildcardName0 != vandop )
          | ( VwildcardName1 != vYesNo )
          | ( VwildcardName2 != vYesNo ) )
        & ( ( VwildcardName0 != vorop )
          | ( VwildcardName1 != vYesNo )
          | ( VwildcardName2 != vYesNo ) )
        & ( VwildcardName0 != veqop ) )
     => ( vcheckBinOp(VwildcardName0,VwildcardName1,VwildcardName2) = vnoAType ) ) ).

tff('checkBinOp-INV',axiom,
    ! [VBinOpT0: vBinOpT,VAType0: vAType,VAType1: vAType] :
      ( ( ( VBinOpT0 = vaddop )
        & ( VAType0 = vNumber )
        & ( VAType1 = vNumber )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vNumber) ) )
      | ( ( VBinOpT0 = vsubop )
        & ( VAType0 = vNumber )
        & ( VAType1 = vNumber )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vNumber) ) )
      | ( ( VBinOpT0 = vmulop )
        & ( VAType0 = vNumber )
        & ( VAType1 = vNumber )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vNumber) ) )
      | ( ( VBinOpT0 = vdivop )
        & ( VAType0 = vNumber )
        & ( VAType1 = vNumber )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vNumber) ) )
      | ( ( VBinOpT0 = vgtop )
        & ( VAType0 = vNumber )
        & ( VAType1 = vNumber )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vYesNo) ) )
      | ( ( VBinOpT0 = vltop )
        & ( VAType0 = vNumber )
        & ( VAType1 = vNumber )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vYesNo) ) )
      | ( ( VBinOpT0 = vandop )
        & ( VAType0 = vYesNo )
        & ( VAType1 = vYesNo )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vYesNo) ) )
      | ( ( VBinOpT0 = vorop )
        & ( VAType0 = vYesNo )
        & ( VAType1 = vYesNo )
        & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vYesNo) ) )
      | ? [VwildcardName00: vAType,VwildcardName10: vAType] :
          ( ( VBinOpT0 = veqop )
          & ( VAType0 = VwildcardName00 )
          & ( VAType1 = VwildcardName10 )
          & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vsomeAType(vYesNo) ) )
      | ? [VwildcardName01: vBinOpT,VwildcardName11: vAType,VwildcardName20: vAType] :
          ( ( ( VwildcardName01 != vaddop )
            | ( VwildcardName11 != vNumber )
            | ( VwildcardName20 != vNumber ) )
          & ( ( VwildcardName01 != vsubop )
            | ( VwildcardName11 != vNumber )
            | ( VwildcardName20 != vNumber ) )
          & ( ( VwildcardName01 != vmulop )
            | ( VwildcardName11 != vNumber )
            | ( VwildcardName20 != vNumber ) )
          & ( ( VwildcardName01 != vdivop )
            | ( VwildcardName11 != vNumber )
            | ( VwildcardName20 != vNumber ) )
          & ( ( VwildcardName01 != vgtop )
            | ( VwildcardName11 != vNumber )
            | ( VwildcardName20 != vNumber ) )
          & ( ( VwildcardName01 != vltop )
            | ( VwildcardName11 != vNumber )
            | ( VwildcardName20 != vNumber ) )
          & ( ( VwildcardName01 != vandop )
            | ( VwildcardName11 != vYesNo )
            | ( VwildcardName20 != vYesNo ) )
          & ( ( VwildcardName01 != vorop )
            | ( VwildcardName11 != vYesNo )
            | ( VwildcardName20 != vYesNo ) )
          & ( VwildcardName01 != veqop )
          & ( VBinOpT0 = VwildcardName01 )
          & ( VAType0 = VwildcardName11 )
          & ( VAType1 = VwildcardName20 )
          & ( vcheckBinOp(VBinOpT0,VAType0,VAType1) = vnoAType ) ) ) ).

tff('checkUnOp-0',axiom,
    vcheckUnOp(vnotop,vYesNo) = vsomeAType(vYesNo) ).

tff('checkUnOp-1',axiom,
    ! [VwildcardName0: vUnOpT,VwildcardName1: vAType] :
      ( ( ( VwildcardName0 != vnotop )
        | ( VwildcardName1 != vYesNo ) )
     => ( vcheckUnOp(VwildcardName0,VwildcardName1) = vnoAType ) ) ).

tff('checkUnOp-INV',axiom,
    ! [VUnOpT0: vUnOpT,VAType0: vAType] :
      ( ( ( VUnOpT0 = vnotop )
        & ( VAType0 = vYesNo )
        & ( vcheckUnOp(VUnOpT0,VAType0) = vsomeAType(vYesNo) ) )
      | ? [VwildcardName00: vUnOpT,VwildcardName10: vAType] :
          ( ( ( VwildcardName00 != vnotop )
            | ( VwildcardName10 != vYesNo ) )
          & ( VUnOpT0 = VwildcardName00 )
          & ( VAType0 = VwildcardName10 )
          & ( vcheckUnOp(VUnOpT0,VAType0) = vnoAType ) ) ) ).

tff('echeck-0',axiom,
    ! [VwildcardName0: vATMap,Vn: vYN] : ( vecheck(VwildcardName0,vconstant(vB(Vn))) = vsomeAType(vYesNo) ) ).

tff('echeck-1',axiom,
    ! [VwildcardName0: vATMap,Vn: vnat] : ( vecheck(VwildcardName0,vconstant(vNum(Vn))) = vsomeAType(vNumber) ) ).

tff('echeck-2',axiom,
    ! [VwildcardName0: vATMap,Vn: vstring] : ( vecheck(VwildcardName0,vconstant(vT(Vn))) = vsomeAType(vText) ) ).

tff('echeck-3',axiom,
    ! [Vatm: vATMap,Vqid: vQID] : ( vecheck(Vatm,vqvar(Vqid)) = vlookupATMap(Vqid,Vatm) ) ).

tff('echeck-4',axiom,
    ! [Vatm: vATMap,Ve1: vExp,Ve2: vExp,Vop: vBinOpT] :
      ( ( visSomeAType(vecheck(Vatm,Ve1))
        & visSomeAType(vecheck(Vatm,Ve2)) )
     => ( vecheck(Vatm,vbinop(Ve1,Vop,Ve2)) = vcheckBinOp(Vop,vgetAType(vecheck(Vatm,Ve1)),vgetAType(vecheck(Vatm,Ve2))) ) ) ).

tff('echeck-5',axiom,
    ! [Vatm: vATMap,Ve1: vExp,Ve2: vExp,Vop: vBinOpT] :
      ( ~ ( visSomeAType(vecheck(Vatm,Ve1))
          & visSomeAType(vecheck(Vatm,Ve2)) )
     => ( vecheck(Vatm,vbinop(Ve1,Vop,Ve2)) = vnoAType ) ) ).

tff('echeck-6',axiom,
    ! [Vatm: vATMap,Ve: vExp,Vop: vUnOpT] :
      ( visSomeAType(vecheck(Vatm,Ve))
     => ( vecheck(Vatm,vunop(Vop,Ve)) = vcheckUnOp(Vop,vgetAType(vecheck(Vatm,Ve))) ) ) ).

tff('echeck-7',axiom,
    ! [Vatm: vATMap,Ve: vExp,Vop: vUnOpT] :
      ( ~ visSomeAType(vecheck(Vatm,Ve))
     => ( vecheck(Vatm,vunop(Vop,Ve)) = vnoAType ) ) ).

tff('echeck-INV',axiom,
    ! [VATMap0: vATMap,VExp0: vExp] :
      ( ? [VwildcardName00: vATMap,Vn0: vYN] :
          ( ( VATMap0 = VwildcardName00 )
          & ( VExp0 = vconstant(vB(Vn0)) )
          & ( vecheck(VATMap0,VExp0) = vsomeAType(vYesNo) ) )
      | ? [Vn1: vnat,VwildcardName01: vATMap] :
          ( ( VATMap0 = VwildcardName01 )
          & ( VExp0 = vconstant(vNum(Vn1)) )
          & ( vecheck(VATMap0,VExp0) = vsomeAType(vNumber) ) )
      | ? [Vn2: vstring,VwildcardName02: vATMap] :
          ( ( VATMap0 = VwildcardName02 )
          & ( VExp0 = vconstant(vT(Vn2)) )
          & ( vecheck(VATMap0,VExp0) = vsomeAType(vText) ) )
      | ? [Vqid0: vQID,Vatm0: vATMap] :
          ( ( VATMap0 = Vatm0 )
          & ( VExp0 = vqvar(Vqid0) )
          & ( vecheck(VATMap0,VExp0) = vlookupATMap(Vqid0,Vatm0) ) )
      | ? [Vatm1: vATMap,Vt10: vOptAType,Ve10: vExp,Vt20: vOptAType,Ve20: vExp,Vop0: vBinOpT] :
          ( ( Vt10 = vecheck(Vatm1,Ve10) )
          & ( Vt20 = vecheck(Vatm1,Ve20) )
          & visSomeAType(Vt10)
          & visSomeAType(Vt20)
          & ( VATMap0 = Vatm1 )
          & ( VExp0 = vbinop(Ve10,Vop0,Ve20) )
          & ( vecheck(VATMap0,VExp0) = vcheckBinOp(Vop0,vgetAType(Vt10),vgetAType(Vt20)) ) )
      | ? [Vatm2: vATMap,Vt11: vOptAType,Ve11: vExp,Vt21: vOptAType,Ve21: vExp,Vop1: vBinOpT] :
          ( ( Vt11 = vecheck(Vatm2,Ve11) )
          & ( Vt21 = vecheck(Vatm2,Ve21) )
          & ~ ( visSomeAType(Vt11)
              & visSomeAType(Vt21) )
          & ( VATMap0 = Vatm2 )
          & ( VExp0 = vbinop(Ve11,Vop1,Ve21) )
          & ( vecheck(VATMap0,VExp0) = vnoAType ) )
      | ? [Vop2: vUnOpT,Ve0: vExp,Vt0: vOptAType,Vatm3: vATMap] :
          ( ( Vt0 = vecheck(Vatm3,Ve0) )
          & visSomeAType(Vt0)
          & ( VATMap0 = Vatm3 )
          & ( VExp0 = vunop(Vop2,Ve0) )
          & ( vecheck(VATMap0,VExp0) = vcheckUnOp(Vop2,vgetAType(Vt0)) ) )
      | ? [Vop3: vUnOpT,Ve12: vExp,Vt12: vOptAType,Vatm4: vATMap] :
          ( ( Vt12 = vecheck(Vatm4,Ve12) )
          & ~ visSomeAType(Vt12)
          & ( VATMap0 = Vatm4 )
          & ( VExp0 = vunop(Vop3,Ve12) )
          & ( vecheck(VATMap0,VExp0) = vnoAType ) ) ) ).

tff('Tqempty',axiom,
    ! [Vatm: vATMap,Vqm: vATMap] : vptcheck(vMC(Vatm,Vqm),vqempty,vMC(Vatm,Vqm)) ).

tff('Tquestion',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vat: vAType,Vl: vLabel,Vqid: vQID] :
      ( ( vlookupATMap(Vqid,Vatm) = vnoAType )
     => vptcheck(vMC(Vatm,Vqm),vqsingle(vquestion(Vqid,Vl,Vat)),vMC(vatmbind(Vqid,Vat,Vatm),Vqm)) ) ).

tff('Tvalue',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vat: vAType,Vqid: vQID,Vexp: vExp] :
      ( ( ( vlookupATMap(Vqid,Vatm) = vnoAType )
        & ( vecheck(Vatm,Vexp) = vsomeAType(Vat) ) )
     => vptcheck(vMC(Vatm,Vqm),vqsingle(vvalue(Vqid,Vat,Vexp)),vMC(vatmbind(Vqid,Vat,Vatm),Vqm)) ) ).

tff('Tdefquestion',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vat: vAType,Vl: vLabel,Vqid: vQID] :
      ( ( vlookupATMap(Vqid,Vqm) = vnoAType )
     => vptcheck(vMC(Vatm,Vqm),vqsingle(vdefquestion(Vqid,Vl,Vat)),vMC(Vatm,vatmbind(Vqid,Vat,Vqm))) ) ).

tff('Task',axiom,
    ! [Vqid: vQID,Vqm: vATMap,Vat: vAType,Vatm: vATMap] :
      ( ( ( vlookupATMap(Vqid,Vqm) = vsomeAType(Vat) )
        & ( vlookupATMap(Vqid,Vatm) = vnoAType ) )
     => vptcheck(vMC(Vatm,Vqm),vqsingle(vask(Vqid)),vMC(vatmbind(Vqid,Vat,Vatm),Vqm)) ) ).

tff('Tqseq',axiom,
    ! [Vqm: vATMap,Vatm2: vATMap,Vqm2: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatm1: vATMap,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm1,Vqm1),Vq2,vMC(Vatm2,Vqm2)) )
     => vptcheck(vMC(Vatm,Vqm),vqseq(Vq1,Vq2),vMC(Vatm2,Vqm2)) ) ).

tff('Tqcond',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatm1: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( ( ( vecheck(Vatm,Vexp) = vsomeAType(vYesNo) )
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm,Vqm),Vq2,vMC(Vatm1,Vqm1)) )
     => vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatm1,Vqm1)) ) ).

tff('Tqgroup',axiom,
    ! [Vqm: vATMap,Vq: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vgid: vGID,Vatm1: vATMap] :
      ( vptcheck(vMC(Vatm,Vqm),Vq,vMC(Vatm1,Vqm1))
     => vptcheck(vMC(Vatm,Vqm),vqgroup(Vgid,Vq),vMC(Vatm1,Vqm1)) ) ).

tff('Tqempty_inv1',axiom,
    ! [Vatm: vATMap,Vqm: vATMap,Vatm1: vATMap,Vqm1: vATMap] :
      ( vptcheck(vMC(Vatm,Vqm),vqempty,vMC(Vatm1,Vqm1))
     => ( Vatm1 = Vatm ) ) ).

tff('Tqempty_inv2',axiom,
    ! [Vatm: vATMap,Vqm: vATMap,Vatm1: vATMap,Vqm1: vATMap] :
      ( vptcheck(vMC(Vatm,Vqm),vqempty,vMC(Vatm1,Vqm1))
     => ( Vqm1 = Vqm ) ) ).

tff('Tquestion_inv1',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vl: vLabel,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vquestion(Vqid,Vl,Vat)),vMC(Vatm1,Vqm1))
     => ( vlookupATMap(Vqid,Vatm) = vnoAType ) ) ).

tff('Tquestion_inv2',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vl: vLabel,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vquestion(Vqid,Vl,Vat)),vMC(Vatm1,Vqm1))
     => ( Vatm1 = vatmbind(Vqid,Vat,Vatm) ) ) ).

tff('Tquestion_inv3',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vl: vLabel,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vquestion(Vqid,Vl,Vat)),vMC(Vatm1,Vqm1))
     => ( Vqm1 = Vqm ) ) ).

tff('Tvalue_inv1',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vatm1: vATMap,Vqid: vQID,Vexp: vExp] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vvalue(Vqid,Vat,Vexp)),vMC(Vatm1,Vqm1))
     => ( vlookupATMap(Vqid,Vatm) = vnoAType ) ) ).

tff('Tvalue_inv2',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vatm1: vATMap,Vqid: vQID,Vexp: vExp] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vvalue(Vqid,Vat,Vexp)),vMC(Vatm1,Vqm1))
     => ( vecheck(Vatm,Vexp) = vsomeAType(Vat) ) ) ).

tff('Tvalue_inv3',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vatm1: vATMap,Vqid: vQID,Vexp: vExp] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vvalue(Vqid,Vat,Vexp)),vMC(Vatm1,Vqm1))
     => ( Vatm1 = vatmbind(Vqid,Vat,Vatm) ) ) ).

tff('Tvalue_inv4',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vatm1: vATMap,Vqid: vQID,Vexp: vExp] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vvalue(Vqid,Vat,Vexp)),vMC(Vatm1,Vqm1))
     => ( Vqm1 = Vqm ) ) ).

tff('Tdefquestion_inv1',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vl: vLabel,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vdefquestion(Vqid,Vl,Vat)),vMC(Vatm1,Vqm1))
     => ( vlookupATMap(Vqid,Vqm) = vnoAType ) ) ).

tff('Tdefquestion_inv2',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vl: vLabel,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vdefquestion(Vqid,Vl,Vat)),vMC(Vatm1,Vqm1))
     => ( Vatm1 = Vatm ) ) ).

tff('Tdefquestion_inv3',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vl: vLabel,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vdefquestion(Vqid,Vl,Vat)),vMC(Vatm1,Vqm1))
     => ( Vqm1 = vatmbind(Vqid,Vat,Vqm) ) ) ).

tff('Task_inv1',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vask(Vqid)),vMC(Vatm1,Vqm1))
     => ( vlookupATMap(Vqid,Vatm) = vnoAType ) ) ).

tff('Task_inv2',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vask(Vqid)),vMC(Vatm1,Vqm1))
     => ? [Vat: vAType] : ( vlookupATMap(Vqid,Vqm) = vsomeAType(Vat) ) ) ).

tff('Task_inv3',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vat: vAType,Vatm1: vATMap,Vqid: vQID] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqsingle(vask(Vqid)),vMC(Vatm1,Vqm1))
        & ( vlookupATMap(Vqid,Vqm) = vsomeAType(Vat) ) )
     => ( Vatm1 = vatmbind(Vqid,Vat,Vatm) ) ) ).

tff('Task_inv4',axiom,
    ! [Vqm: vATMap,Vatm: vATMap,Vqm1: vATMap,Vatm1: vATMap,Vqid: vQID] :
      ( vptcheck(vMC(Vatm,Vqm),vqsingle(vask(Vqid)),vMC(Vatm1,Vqm1))
     => ( Vqm1 = Vqm ) ) ).

tff('Tqseq_inv1',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vatmr: vATMap,Vqmr: vATMap,Vq2: vQuestionnaire] :
      ( vptcheck(vMC(Vatm,Vqm),vqseq(Vq1,Vq2),vMC(Vatmr,Vqmr))
     => ? [Vatm1: vATMap,Vqm1: vATMap] : vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1)) ) ).

tff('Tqseq_inv2',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatmr: vATMap,Vatm1: vATMap,Vqmr: vATMap,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqseq(Vq1,Vq2),vMC(Vatmr,Vqmr))
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1)) )
     => ? [Vatm2: vATMap,Vqm2: vATMap] : vptcheck(vMC(Vatm1,Vqm1),Vq2,vMC(Vatm2,Vqm2)) ) ).

tff('Tqseq_inv3',axiom,
    ! [Vqm: vATMap,Vatm2: vATMap,Vqm2: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatmr: vATMap,Vatm1: vATMap,Vqmr: vATMap,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqseq(Vq1,Vq2),vMC(Vatmr,Vqmr))
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm1,Vqm1),Vq2,vMC(Vatm2,Vqm2)) )
     => ( Vatmr = Vatm2 ) ) ).

tff('Tqseq_inv4',axiom,
    ! [Vqm: vATMap,Vatm2: vATMap,Vqm2: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatmr: vATMap,Vatm1: vATMap,Vqmr: vATMap,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqseq(Vq1,Vq2),vMC(Vatmr,Vqmr))
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm1,Vqm1),Vq2,vMC(Vatm2,Vqm2)) )
     => ( Vqmr = Vqm2 ) ) ).

tff('Tqcond_inv1',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vatmr: vATMap,Vqmr: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatmr,Vqmr))
     => ( vecheck(Vatm,Vexp) = vsomeAType(vYesNo) ) ) ).

tff('Tqcond_inv2',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vatmr: vATMap,Vqmr: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatmr,Vqmr))
     => ? [Vatm1: vATMap,Vqm1: vATMap] : vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1)) ) ).

tff('Tqcond_inv3',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vatmr: vATMap,Vqmr: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatmr,Vqmr))
     => ? [Vatm1: vATMap,Vqm1: vATMap] : vptcheck(vMC(Vatm,Vqm),Vq2,vMC(Vatm1,Vqm1)) ) ).

tff('Tqcond_inv4',axiom,
    ! [Vqm: vATMap,Vatm2: vATMap,Vqm2: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatmr: vATMap,Vatm1: vATMap,Vqmr: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatmr,Vqmr))
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm,Vqm),Vq2,vMC(Vatm2,Vqm2)) )
     => ( Vatm1 = Vatm2 ) ) ).

tff('Tqcond_inv5',axiom,
    ! [Vqm: vATMap,Vatm2: vATMap,Vqm2: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatmr: vATMap,Vatm1: vATMap,Vqmr: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatmr,Vqmr))
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm,Vqm),Vq2,vMC(Vatm2,Vqm2)) )
     => ( Vqm1 = Vqm2 ) ) ).

tff('Tqcond_inv6',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatmr: vATMap,Vatm1: vATMap,Vqmr: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatmr,Vqmr))
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm,Vqm),Vq2,vMC(Vatm1,Vqm1)) )
     => ( Vatmr = Vatm1 ) ) ).

tff('Tqcond_inv7',axiom,
    ! [Vqm: vATMap,Vq1: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vatmr: vATMap,Vatm1: vATMap,Vqmr: vATMap,Vexp: vExp,Vq2: vQuestionnaire] :
      ( ( vptcheck(vMC(Vatm,Vqm),vqcond(Vexp,Vq1,Vq2),vMC(Vatmr,Vqmr))
        & vptcheck(vMC(Vatm,Vqm),Vq1,vMC(Vatm1,Vqm1))
        & vptcheck(vMC(Vatm,Vqm),Vq2,vMC(Vatm1,Vqm1)) )
     => ( Vqmr = Vqm1 ) ) ).

tff('Tqgroup_inv',axiom,
    ! [Vqm: vATMap,Vq: vQuestionnaire,Vatm: vATMap,Vqm1: vATMap,Vgid: vGID,Vatm1: vATMap] :
      ( vptcheck(vMC(Vatm,Vqm),vqgroup(Vgid,Vq),vMC(Vatm1,Vqm1))
     => vptcheck(vMC(Vatm,Vqm),Vq,vMC(Vatm1,Vqm1)) ) ).

tff('Preservation-qcond-IH0',axiom,
    ! [Vqtm1: vATMap,Vqr: vQuestionnaire,Vqm: vQMap,Vamr: vAnsMap,Vatm1: vATMap,Vam: vAnsMap,Vqmr: vQMap] :
      ( ( vptcheck(vMC(vtypeAM(Vam),vtypeQM(Vqm)),vq1,vMC(Vatm1,Vqtm1))
        & ( vreduce(vq1,Vam,Vqm) = vsomeQConf(vQC(Vamr,Vqmr,Vqr)) ) )
     => vptcheck(vMC(vtypeAM(Vamr),vtypeQM(Vqmr)),Vqr,vMC(Vatm1,Vqtm1)) ) ).

tff('Preservation-qcond-IH1',axiom,
    ! [Vqtm1: vATMap,Vqr: vQuestionnaire,Vqm: vQMap,Vamr: vAnsMap,Vatm1: vATMap,Vam: vAnsMap,Vqmr: vQMap] :
      ( ( vptcheck(vMC(vtypeAM(Vam),vtypeQM(Vqm)),vq2,vMC(Vatm1,Vqtm1))
        & ( vreduce(vq2,Vam,Vqm) = vsomeQConf(vQC(Vamr,Vqmr,Vqr)) ) )
     => vptcheck(vMC(vtypeAM(Vamr),vtypeQM(Vqmr)),Vqr,vMC(Vatm1,Vqtm1)) ) ).

tff(reduceExpProgress,axiom,
    ! [Ve: vExp,Vam: vAnsMap,Vat: vAType] :
      ( ( ~ vexpIsValue(Ve)
        & ( vecheck(vtypeAM(Vam),Ve) = vsomeAType(Vat) ) )
     => ? [Veres0: vExp] : ( vreduceExp(Ve,Vam) = vsomeExp(Veres0) ) ) ).

tff(reduceExpPreservation,axiom,
    ! [Vam: vAnsMap,Ve: vExp,Vat: vAType,Ver: vExp] :
      ( ( ( vecheck(vtypeAM(Vam),Ve) = vsomeAType(Vat) )
        & ( vreduceExp(Ve,Vam) = vsomeExp(Ver) ) )
     => ( vecheck(vtypeAM(Vam),Ver) = vsomeAType(Vat) ) ) ).

tff('Preservation-qcond-e-isSomeExp-True',conjecture,
    ! [Vqtm1: vATMap,Vqr: vQuestionnaire,Vqm: vQMap,Ve: vExp,Vamr: vAnsMap,Vatm1: vATMap,Vam: vAnsMap,Vqmr: vQMap] :
      ( ( visSomeExp(vreduceExp(Ve,Vam))
        & ! [Va000000: vAval] : ( Ve != vconstant(Va000000) )
        & vptcheck(vMC(vtypeAM(Vam),vtypeQM(Vqm)),vqcond(Ve,vq1,vq2),vMC(Vatm1,Vqtm1))
        & ( vreduce(vqcond(Ve,vq1,vq2),Vam,Vqm) = vsomeQConf(vQC(Vamr,Vqmr,Vqr)) ) )
     => vptcheck(vMC(vtypeAM(Vamr),vtypeQM(Vqmr)),Vqr,vMC(Vatm1,Vqtm1)) ) ).

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