TPTP Problem File: COM275_1.p
View Solutions
- Solve Problem
%------------------------------------------------------------------------------
% File : COM275_1 : TPTP v9.3.1. Released v9.3.0.
% Domain : Computing Theory
% Problem : QL-reduceExpProgress-binop-expIsValue-etc
% 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-reduceExpProgress-binop-expIsValue-True-expIsValue-False-isSomeExp-True [Gre24]
% Status : Theorem
% Rating : 0.17 v9.3.0
% Syntax : Number of formulae : 508 ( 185 unt; 146 typ; 0 def)
% Number of atoms : 1144 ( 971 equ)
% Maximal formula atoms : 100 ( 3 avg)
% Number of connectives : 1083 ( 301 ~; 209 |; 447 &)
% ( 0 <=>; 126 =>; 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 : 1286 ( 920 !; 366 ?;1286 :)
% 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(e1_type,type,
ve1: vExp ).
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(e2_type,type,
ve2: vExp ).
tff(noQuestion_type,type,
vnoQuestion: vOptQuestion ).
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(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('reduceExpProgress-binop-IH0',axiom,
! [Vam: vAnsMap,Vat: vAType] :
( ( ~ vexpIsValue(ve1)
& ( vecheck(vtypeAM(Vam),ve1) = vsomeAType(Vat) ) )
=> ? [Veres00: vExp] : ( vreduceExp(ve1,Vam) = vsomeExp(Veres00) ) ) ).
tff('reduceExpProgress-binop-IH1',axiom,
! [Vam: vAnsMap,Vat: vAType] :
( ( ~ vexpIsValue(ve2)
& ( vecheck(vtypeAM(Vam),ve2) = vsomeAType(Vat) ) )
=> ? [Veres00: vExp] : ( vreduceExp(ve2,Vam) = vsomeExp(Veres00) ) ) ).
tff('reduceExpProgress-binop-expIsValue-True-expIsValue-False-isSomeExp-True',conjecture,
! [Vam: vAnsMap,Vbot: vBinOpT,Vat: vAType] :
( ( visSomeExp(vreduceExp(ve2,Vam))
& ~ vexpIsValue(ve2)
& vexpIsValue(ve1)
& ~ vexpIsValue(vbinop(ve1,Vbot,ve2))
& ( vecheck(vtypeAM(Vam),vbinop(ve1,Vbot,ve2)) = vsomeAType(Vat) ) )
=> ? [Veres000: vExp] : ( vreduceExp(vbinop(ve1,Vbot,ve2),Vam) = vsomeExp(Veres000) ) ) ).
%------------------------------------------------------------------------------