Vampire 5.0
Michael Rawson
University of Southampton, United Kongdom
Notes regarding saturations
Vampire can testify (counter)-satisfiability of a given problem by finitely saturating the
corresponding preprocessed clause set (using a complete version of a calculus). It then reports
SZS Status Satisfiable.
As supporting evidence, Vampire prints two artefacts:
The saturated clause set itself between SZS output start Saturation and SZS output
end Saturation, and a section of "Definitions and Model Updates".
Among the preprocessing steps used by Vampire in order to transform an arbitrary first-order
problem into the CNF on which saturation starts are some steps (we call them
interferences) which only preserve model existence, but not all models, or which modify
the signature.
Each of these steps comes with a model-theoretic argument of the form: "If you give me a model
of the post-step F, this is what you must do to get a model of pre-step F".
The "Definitions and Model Updates" section lists these transformations in the order in which
they should be applied to the model of the final CNF (that just got saturated) in order to arrive
at a model of the original input problem.
These transformations are implemented in Vampire already to work on finite models found by its
finite model finder, but since the model represented by finite saturations is only implicit, we do
our best to at least report what transformations have been recorded and should be played back.
Here is an explanation for the transformations implemented (so far):
- Eliminated symbols are defined in terms of their original definitions. E.g. for predicates:
for all inputs,
define r(X0,X1) := p(X0,b)
or for functions (constants):
for all inputs,
define a := aa
- Partially eliminated definitions (e.g., when Vampire turns
![X:ta] : (~qq(X) <=> ~(q(X) & (?[X:ta] : q(X))))
into
![X:ta] : (~qq(X) <= ~(q(X) & (?[X:ta] : q(X))))
because all the remaining occurrences of qq are positive.) may require conditional atom flips:
for all groundings,
whenever ? [X1 : ta] : q(X1) & q(X0) is true, set qq(X0) to true
Here "for all groundings" suggests a Herbrand model, but the meaning is the same as "for
all inputs".
- We also have globally flip the polarity of every occurrence of a predicate, e.g.,
'$ki_accessible', which means: "negate the whole truth table for the corresponding
predicate" and complements the optional random_polarities preprocessing step ("As part of
preprocessing, randomly (though consistently) flip polarities of non-equality predicates in
the whole CNF.").
- To complement blocked clause elimination
(https://easychair.org/publications/paper/Bl2v/open)
we may introduce a more complicated version of a conditional flip. E.g.,
for all groundings, until fixed point,
whenever teach(X1,X0,cs) | ~'$ki_accessible'('$ki_local_world',X1) | ~teach('$ki_local_world',X0,psych) | ~'$ki_exists_in_world_$i'('$ki_local_world',X0) is false, set teach(X1,X0,cs) to true
The "until fixed point" bit is necessary and explained in Lemma 4 of the BCE paper.
In a nutshell, this means: if you go over your groundings and flip something, you have to
then restart and go from the beginning again.
In the finite model building version of this (which actually does the changes as described)
we use a do-while loop
(https://github.com/vprover/vampire/blob/0dce69acaa3452831bf8f851485da9266aa02b57/FMB/FiniteModelMultiSorted.cpp#L1093)
Solution for SET014^4
thf(func_def_0, type, in: $i > ($i > $o) > $o).
thf(func_def_2, type, is_a: $i > ($i > $o) > $o).
thf(func_def_3, type, emptyset: $i > $o).
thf(func_def_4, type, unord_pair: $i > $i > $i > $o).
thf(func_def_5, type, singleton: $i > $i > $o).
thf(func_def_6, type, union: ($i > $o) > ($i > $o) > $i > $o).
thf(func_def_7, type, excl_union: ($i > $o) > ($i > $o) > $i > $o).
thf(func_def_8, type, intersection: ($i > $o) > ($i > $o) > $i > $o).
thf(func_def_9, type, setminus: ($i > $o) > ($i > $o) > $i > $o).
thf(func_def_10, type, complement: ($i > $o) > $i > $o).
thf(func_def_11, type, disjoint: ($i > $o) > ($i > $o) > $o).
thf(func_def_12, type, subset: ($i > $o) > ($i > $o) > $o).
thf(func_def_13, type, meets: ($i > $o) > ($i > $o) > $o).
thf(func_def_14, type, misses: ($i > $o) > ($i > $o) > $o).
thf(func_def_28, type, sK0: $i > $o).
thf(func_def_29, type, sK1: $i > $o).
thf(func_def_30, type, sK2: $i > $o).
thf(f113,plain,(
$false),
inference(avatar_sat_refutation,[],[f92,f106,f112])).
thf(f112,plain,(
~spl3_1),
inference(avatar_contradiction_clause,[],[f111])).
thf(f111,plain,(
$false | ~spl3_1),
inference(trivial_inequality_removal,[],[f107])).
thf(f107,plain,(
($true = $false) | ~spl3_1),
inference(superposition,[],[f87,f96])).
thf(f96,plain,(
($false = (sK2 @ sK4))),
inference(trivial_inequality_removal,[],[f94])).
thf(f94,plain,(
($true = $false) | ($false = (sK2 @ sK4))),
inference(superposition,[],[f79,f73])).
thf(f73,plain,(
((sK1 @ sK4) = $false)),
inference(binary_proxy_clausification,[],[f72])).
thf(f72,plain,(
((((sK2 @ sK4) | (sK0 @ sK4)) => (sK1 @ sK4)) = $false)),
inference(beta_eta_normalization,[],[f71])).
thf(f71,plain,(
($false = ((^[Y0 : $i]: (((sK2 @ Y0) | (sK0 @ Y0)) => (sK1 @ Y0))) @ sK4))),
inference(sigma_clausification,[],[f70])).
thf(f70,plain,(
($true != (!! @ $i @ (^[Y0 : $i]: (((sK2 @ Y0) | (sK0 @ Y0)) => (sK1 @ Y0)))))),
inference(beta_eta_normalization,[],[f67])).
thf(f67,plain,(
($true != ((^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: (!! @ $i @ (^[Y2 : $i]: ((Y0 @ Y2) => (Y1 @ Y2))))))) @ ((^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: ((^[Y2 : $i]: ((Y0 @ Y2) | (Y1 @ Y2))))))) @ sK2 @ sK0) @ sK1))),
inference(definition_unfolding,[],[f59,f52,f60])).
thf(f60,plain,(
(union = (^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: ((^[Y2 : $i]: ((Y0 @ Y2) | (Y1 @ Y2))))))))),
inference(cnf_transformation,[],[f28])).
thf(f28,plain,(
(union = (^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: ((^[Y2 : $i]: ((Y0 @ Y2) | (Y1 @ Y2))))))))),
inference(fool_elimination,[],[f27])).
thf(f27,plain,(
((^[X0 : $i > $o, X1 : $i > $o, X2 : $i] : ((X1 @ X2) | (X0 @ X2))) = union)),
inference(rectify,[],[f6])).
thf(f6,axiom,(
((^[X0 : $i > $o, X2 : $i > $o, X3 : $i] : ((X2 @ X3) | (X0 @ X3))) = union)),
file('Problems/SET/SET014^4.p',union)).
thf(f52,plain,(
(subset = (^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: (!! @ $i @ (^[Y2 : $i]: ((Y0 @ Y2) => (Y1 @ Y2))))))))),
inference(cnf_transformation,[],[f36])).
thf(f36,plain,(
(subset = (^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: (!! @ $i @ (^[Y2 : $i]: ((Y0 @ Y2) => (Y1 @ Y2))))))))),
inference(fool_elimination,[],[f35])).
thf(f35,plain,(
(subset = (^[X0 : $i > $o, X1 : $i > $o] : (! [X2] : ((X0 @ X2) => (X1 @ X2)))))),
inference(rectify,[],[f12])).
thf(f12,axiom,(
(subset = (^[X0 : $i > $o, X2 : $i > $o] : (! [X3] : ((X0 @ X3) => (X2 @ X3)))))),
file('Problems/SET/SET014^4.p',subset)).
thf(f59,plain,(
((subset @ (union @ sK2 @ sK0) @ sK1) != $true)),
inference(cnf_transformation,[],[f48])).
thf(f48,plain,(
((subset @ (union @ sK2 @ sK0) @ sK1) != $true) & ($true = (subset @ sK0 @ sK1)) & ($true = (subset @ sK2 @ sK1))),
inference(skolemisation,[status(esa),new_symbols(skolem,[sK0,sK1,sK2])],[f46,f47])).
thf(f47,plain,(
? [X0 : $i > $o,X1 : $i > $o,X2 : $i > $o] : (($true != (subset @ (union @ X2 @ X0) @ X1)) & ($true = (subset @ X0 @ X1)) & ($true = (subset @ X2 @ X1))) => (((subset @ (union @ sK2 @ sK0) @ sK1) != $true) & ($true = (subset @ sK0
@ sK1)) & ($true = (subset @ sK2 @ sK1)))),
introduced(choice_axiom,[])).
thf(f46,plain,(
? [X0 : $i > $o,X1 : $i > $o,X2 : $i > $o] : (($true != (subset @ (union @ X2 @ X0) @ X1)) & ($true = (subset @ X0 @ X1)) & ($true = (subset @ X2 @ X1)))),
inference(flattening,[],[f45])).
thf(f45,plain,(
? [X0 : $i > $o,X1 : $i > $o,X2 : $i > $o] : (($true != (subset @ (union @ X2 @ X0) @ X1)) & (($true = (subset @ X2 @ X1)) & ($true = (subset @ X0 @ X1))))),
inference(ennf_transformation,[],[f30])).
thf(f30,plain,(
~! [X0 : $i > $o,X1 : $i > $o,X2 : $i > $o] : ((($true = (subset @ X2 @ X1)) & ($true = (subset @ X0 @ X1))) => ($true = (subset @ (union @ X2 @ X0) @ X1)))),
inference(fool_elimination,[],[f29])).
thf(f29,plain,(
~! [X0 : $i > $o,X1 : $i > $o,X2 : $i > $o] : (((subset @ X2 @ X1) & (subset @ X0 @ X1)) => (subset @ (union @ X2 @ X0) @ X1))),
inference(rectify,[],[f16])).
thf(f16,negated_conjecture,(
~! [X2 : $i > $o,X4 : $i > $o,X0 : $i > $o] : (((subset @ X0 @ X4) & (subset @ X2 @ X4)) => (subset @ (union @ X0 @ X2) @ X4))),
inference(negated_conjecture,[],[f15])).
thf(f15,conjecture,(
! [X2 : $i > $o,X4 : $i > $o,X0 : $i > $o] : (((subset @ X0 @ X4) & (subset @ X2 @ X4)) => (subset @ (union @ X0 @ X2) @ X4))),
file('Problems/SET/SET014^4.p',thm)).
thf(f79,plain,(
( ! [X1 : $i] : (($true = (sK1 @ X1)) | ((sK2 @ X1) = $false)) )),
inference(binary_proxy_clausification,[],[f78])).
thf(f78,plain,(
( ! [X1 : $i] : (($true = ((sK2 @ X1) => (sK1 @ X1)))) )),
inference(beta_eta_normalization,[],[f77])).
thf(f77,plain,(
( ! [X1 : $i] : (($true = ((^[Y0 : $i]: ((sK2 @ Y0) => (sK1 @ Y0))) @ X1))) )),
inference(pi_clausification,[],[f76])).
thf(f76,plain,(
($true = (!! @ $i @ (^[Y0 : $i]: ((sK2 @ Y0) => (sK1 @ Y0)))))),
inference(beta_eta_normalization,[],[f69])).
thf(f69,plain,(
($true = ((^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: (!! @ $i @ (^[Y2 : $i]: ((Y0 @ Y2) => (Y1 @ Y2))))))) @ sK2 @ sK1))),
inference(definition_unfolding,[],[f57,f52])).
thf(f57,plain,(
($true = (subset @ sK2 @ sK1))),
inference(cnf_transformation,[],[f48])).
thf(f87,plain,(
($true = (sK2 @ sK4)) | ~spl3_1),
inference(avatar_component_clause,[],[f85])).
thf(f85,plain,(
spl3_1 <=> ($true = (sK2 @ sK4))),
introduced(avatar_definition,[new_symbols(naming,[spl3_1])])).
thf(f106,plain,(
~spl3_2),
inference(avatar_contradiction_clause,[],[f105])).
thf(f105,plain,(
$false | ~spl3_2),
inference(trivial_inequality_removal,[],[f101])).
thf(f101,plain,(
($true = $false) | ~spl3_2),
inference(superposition,[],[f100,f91])).
thf(f91,plain,(
($true = (sK0 @ sK4)) | ~spl3_2),
inference(avatar_component_clause,[],[f89])).
thf(f89,plain,(
spl3_2 <=> ($true = (sK0 @ sK4))),
introduced(avatar_definition,[new_symbols(naming,[spl3_2])])).
thf(f100,plain,(
((sK0 @ sK4) = $false)),
inference(trivial_inequality_removal,[],[f97])).
thf(f97,plain,(
($true = $false) | ((sK0 @ sK4) = $false)),
inference(superposition,[],[f83,f73])).
thf(f83,plain,(
( ! [X1 : $i] : (($true = (sK1 @ X1)) | ($false = (sK0 @ X1))) )),
inference(binary_proxy_clausification,[],[f82])).
thf(f82,plain,(
( ! [X1 : $i] : (($true = ((sK0 @ X1) => (sK1 @ X1)))) )),
inference(beta_eta_normalization,[],[f81])).
thf(f81,plain,(
( ! [X1 : $i] : (($true = ((^[Y0 : $i]: ((sK0 @ Y0) => (sK1 @ Y0))) @ X1))) )),
inference(pi_clausification,[],[f80])).
thf(f80,plain,(
($true = (!! @ $i @ (^[Y0 : $i]: ((sK0 @ Y0) => (sK1 @ Y0)))))),
inference(beta_eta_normalization,[],[f68])).
thf(f68,plain,(
($true = ((^[Y0 : $i > $o]: ((^[Y1 : $i > $o]: (!! @ $i @ (^[Y2 : $i]: ((Y0 @ Y2) => (Y1 @ Y2))))))) @ sK0 @ sK1))),
inference(definition_unfolding,[],[f58,f52])).
thf(f58,plain,(
($true = (subset @ sK0 @ sK1))),
inference(cnf_transformation,[],[f48])).
thf(f92,plain,(
spl3_1 | spl3_2),
inference(avatar_split_clause,[],[f75,f89,f85])).
thf(f75,plain,(
($true = (sK2 @ sK4)) | ($true = (sK0 @ sK4))),
inference(binary_proxy_clausification,[],[f74])).
thf(f74,plain,(
($true = ((sK2 @ sK4) | (sK0 @ sK4)))),
inference(binary_proxy_clausification,[],[f72])).
Solution for DAT013_1
% SUCCESS: Derivation has unique formula names
% SUCCESS: All derived formulae have parents and inference information
% WARNING: Took the first false root f43 as the single derivation root
% SUCCESS: Derivation is acyclic
% SUCCESS: Derivation looks like a refutation
% SUCCESS: Negated conjecture f4 is a leaf or CTH from a conjecture
% SUCCESS: Assumptions are propagated
% SUCCESS: Assumptions are discharged
% NOTICE: Took the conjecture f3 as the proved formula
% CPUTIME: 0.06
% SUCCESS: Verified
% SZS status Verified
tff(type_def_5, type, array: $tType).
tff(func_def_0, type, read: (array * $int) > $int).
tff(func_def_1, type, write: (array * $int * $int) > array).
tff(func_def_5, type, sK0: array).
tff(func_def_6, type, sK1: $int).
tff(func_def_7, type, sK2: $int).
tff(func_def_8, type, sK3: $int).
tff(func_def_9, type, -1: $int > $int).
tff(f43,plain,(
$false),
inference(avatar_sat_refutation,[],[f35,f38,f42])).
tff(f42,plain,(
~spl4_1),
inference(avatar_contradiction_clause,[],[f41])).
tff(f41,plain,(
$false | ~spl4_1),
inference(alasca_normalization,[],[f40])).
tff(f40,plain,(
$greater($sum($sum($uminus(sK3),$sum(-2,sK3)),-1),0) | ~spl4_1),
inference(alasca_fourier_motzkin,[],[f30,f20])).
tff(f20,plain,(
$greater($sum(-1(sK1),$sum(sK3,-2)),0)),
inference(alasca_normalization,[],[f16])).
tff(f16,plain,(
~$less(sK3,$sum(sK1,3))),
inference(cnf_transformation,[],[f12])).
tff(f12,plain,(
(~$less(0,read(sK0,sK3)) & ~$less(sK2,sK3) & ~$less(sK3,$sum(sK1,3))) & ! [X4 : $int] : ($less(0,read(sK0,X4)) | $less(sK2,X4) | $less(X4,sK1))),
inference(skolemisation,[status(esa),new_symbols(skolem,[sK0,sK1,sK2,sK3])],[f9,f11,f10])).
tff(f10,plain,(
? [X0 : array,X1 : $int,X2 : $int] : (? [X3 : $int] : (~$less(0,read(X0,X3)) & ~$less(X2,X3) & ~$less(X3,$sum(X1,3))) & ! [X4 : $int] : ($less(0,read(X0,X4)) | $less(X2,X4) | $less(X4,X1))) => (? [X3 : $int] : (~$less(0,read(sK0,X3)) & ~
$less(sK2,X3) & ~$less(X3,$sum(sK1,3))) & ! [X4 : $int] : ($less(0,read(sK0,X4)) | $less(sK2,X4) | $less(X4,sK1)))),
introduced(definition,[],[choice_axiom])).
tff(f11,plain,(
? [X3 : $int] : (~$less(0,read(sK0,X3)) & ~$less(sK2,X3) & ~$less(X3,$sum(sK1,3))) => (~$less(0,read(sK0,sK3)) & ~$less(sK2,sK3) & ~$less(sK3,$sum(sK1,3)))),
introduced(definition,[],[choice_axiom])).
tff(f9,plain,(
? [X0 : array,X1 : $int,X2 : $int] : (? [X3 : $int] : (~$less(0,read(X0,X3)) & ~$less(X2,X3) & ~$less(X3,$sum(X1,3))) & ! [X4 : $int] : ($less(0,read(X0,X4)) | $less(X2,X4) | $less(X4,X1)))),
inference(rectify,[],[f8])).
tff(f8,plain,(
? [X0 : array,X1 : $int,X2 : $int] : (? [X4 : $int] : (~$less(0,read(X0,X4)) & ~$less(X2,X4) & ~$less(X4,$sum(X1,3))) & ! [X3 : $int] : ($less(0,read(X0,X3)) | $less(X2,X3) | $less(X3,X1)))),
inference(flattening,[],[f7])).
tff(f7,plain,(
? [X0 : array,X1 : $int,X2 : $int] : (? [X4 : $int] : (~$less(0,read(X0,X4)) & (~$less(X2,X4) & ~$less(X4,$sum(X1,3)))) & ! [X3 : $int] : ($less(0,read(X0,X3)) | ($less(X2,X3) | $less(X3,X1))))),
inference(ennf_transformation,[],[f5])).
tff(f5,plain,(
~! [X0 : array,X1 : $int,X2 : $int] : (! [X3 : $int] : ((~$less(X2,X3) & ~$less(X3,X1)) => $less(0,read(X0,X3))) => ! [X4 : $int] : ((~$less(X2,X4) & ~$less(X4,$sum(X1,3))) => $less(0,read(X0,X4))))),
inference(theory_normalization,[],[f4])).
tff(f4,negated_conjecture,(
~! [X0 : array,X1 : $int,X2 : $int] : (! [X3 : $int] : (($lesseq(X3,X2) & $lesseq(X1,X3)) => $greater(read(X0,X3),0)) => ! [X4 : $int] : (($lesseq(X4,X2) & $lesseq($sum(X1,3),X4)) => $greater(read(X0,X4),0)))),
inference(negated_conjecture,[status(cth)],[f3])).
tff(f3,conjecture,(
! [X0 : array,X1 : $int,X2 : $int] : (! [X3 : $int] : (($lesseq(X3,X2) & $lesseq(X1,X3)) => $greater(read(X0,X3),0)) => ! [X4 : $int] : (($lesseq(X4,X2) & $lesseq($sum(X1,3),X4)) => $greater(read(X0,X4),0)))),
file('Problems/DAT/DAT013_1.p',unknown)).
tff(f30,plain,(
$greater($sum(sK1,-1(sK3)),0) | ~spl4_1),
inference(avatar_component_clause,[],[f28])).
tff(f28,definition,(
spl4_1 <=> $greater($sum(sK1,-1(sK3)),0)),
introduced(definition,[new_symbols(naming,[spl4_1])],[avatar_definition])).
tff(f38,plain,(
~spl4_2),
inference(avatar_contradiction_clause,[],[f37])).
tff(f37,plain,(
$false | ~spl4_2),
inference(alasca_normalization,[],[f36])).
tff(f36,plain,(
$greater($sum($sum($sum(1,$uminus(sK3)),sK3),-1),0) | ~spl4_2),
inference(alasca_fourier_motzkin,[],[f21,f34])).
tff(f34,plain,(
$greater($sum(-1(sK2),sK3),0) | ~spl4_2),
inference(avatar_component_clause,[],[f32])).
tff(f32,definition,(
spl4_2 <=> $greater($sum(-1(sK2),sK3),0)),
introduced(definition,[new_symbols(naming,[spl4_2])],[avatar_definition])).
tff(f21,plain,(
$greater($sum(sK2,$sum(-1(sK3),1)),0)),
inference(alasca_normalization,[],[f17])).
tff(f17,plain,(
~$less(sK2,sK3)),
inference(cnf_transformation,[],[f12])).
tff(f35,plain,(
spl4_1 | spl4_2),
inference(avatar_split_clause,[],[f26,f32,f28])).
tff(f26,plain,(
$greater($sum(-1(sK2),sK3),0) | $greater($sum(sK1,-1(sK3)),0)),
inference(alasca_normalization,[],[f25])).
tff(f25,plain,(
$greater($sum(sK3,-1(sK2)),0) | $greater($sum(-1(sK3),sK1),0) | $greater($sum(1,-1),0)),
inference(alasca_fourier_motzkin,[],[f19,f22])).
tff(f22,plain,(
$greater($sum(1,-1(read(sK0,sK3))),0)),
inference(alasca_normalization,[],[f18])).
tff(f18,plain,(
~$less(0,read(sK0,sK3))),
inference(cnf_transformation,[],[f12])).
tff(f19,plain,(
( ! [X4 : $int] : ($greater(read(sK0,X4),0) | $greater($sum(X4,-1(sK2)),0) | $greater($sum(-1(X4),sK1),0)) )),
inference(alasca_normalization,[],[f15])).
tff(f15,plain,(
( ! [X4 : $int] : ($less(0,read(sK0,X4)) | $less(sK2,X4) | $less(X4,sK1)) )),
inference(cnf_transformation,[],[f12])).
Saturation for DAT335_2
% (3727607)# SZS output start Saturation.
cnf(u30,negated_conjecture,
'$ki_accessible'('$ki_local_world',X1) | teach(X1,X0,cs) | ~teach('$ki_local_world',X0,psych) | ~'$ki_exists_in_world_$i'('$ki_local_world',X0)).
cnf(u25,axiom,
teach(X0,sue,psych) | '$ki_accessible'('$ki_local_world',X0)).
cnf(u24,axiom,
~'$ki_accessible'(X0,X0)).
cnf(u27,axiom,
teach(X0,sK1(X0),cs) | '$ki_accessible'('$ki_local_world',X0)).
cnf(u16,axiom,
'$ki_exists_in_world_$i'(X0,X1)).
cnf(u26,axiom,
teach(X0,mary,psych) | '$ki_accessible'('$ki_local_world',X0)).
cnf(u29,axiom,
teach(X0,john,math) | '$ki_accessible'('$ki_local_world',X0)).
cnf(u31,negated_conjecture,
teach('$ki_local_world',X0,cs) | ~teach('$ki_local_world',X0,psych) | ~'$ki_exists_in_world_$i'('$ki_local_world',X0)).
% (3727607)# SZS output end Saturation.
% (3727607)# SZS output start Definitions and Model Updates.
globally flip the polarity of every occurrence of predicate "'$ki_accessible'"
% (3727607)# SZS output end Definitions and Model Updates.
Finite Model for DAT335_2
tff('declare_$i1',type,'fmb_$i_1':$i).
tff('finite_domain_$i',axiom,
! [X:$i] : (
X = 'fmb_$i_1'
) ).
tff('declare_$ki_world',type,'$ki_world':$tType).
tff('declare_$ki_world1',type,'fmb_$ki_world_1':'$ki_world').
tff('finite_domain_$ki_world',axiom,
! [X:'$ki_world'] : (
X = 'fmb_$ki_world_1'
) ).
tff('declare_$ki_local_world',type,'$ki_local_world':'$ki_world').
tff('$ki_local_world_definition',axiom,'$ki_local_world' = 'fmb_$ki_world_1').
tff(declare_cs,type,cs:$i).
tff(cs_definition,axiom,cs = 'fmb_$i_1').
tff(declare_sue,type,sue:$i).
tff(sue_definition,axiom,sue = 'fmb_$i_1').
tff(declare_mary,type,mary:$i).
tff(mary_definition,axiom,mary = 'fmb_$i_1').
tff(declare_john,type,john:$i).
tff(john_definition,axiom,john = 'fmb_$i_1').
tff(declare_math,type,math:$i).
tff(math_definition,axiom,math = 'fmb_$i_1').
tff(declare_psych,type,psych:$i).
tff(psych_definition,axiom,psych = 'fmb_$i_1').
tff('declare_$ki_accessible',type,'$ki_accessible': ('$ki_world' * '$ki_world') > $o).
tff('predicate_$ki_accessible',axiom,
'$ki_accessible'('fmb_$ki_world_1','fmb_$ki_world_1')
).
tff(declare_teach,type,teach: ('$ki_world' * $i * $i) > $o).
tff(predicate_teach,axiom,
teach('fmb_$ki_world_1','fmb_$i_1','fmb_$i_1')
).
tff('declare_$ki_exists_in_world_$i',type,'$ki_exists_in_world_$i': ('$ki_world' * $i) > $o).
tff('predicate_$ki_exists_in_world_$i',axiom,
'$ki_exists_in_world_$i'('fmb_$ki_world_1','fmb_$i_1')
).
Saturation for SWW469_10
% # SZS output start Saturation.
cnf(u15,hypothesis,
sK0 != sK1).
cnf(u14,hypothesis,
hoare_1310879719gleton).
% # SZS output end Saturation.
% # SZS output start Definitions and Model Updates.
for all inputs,
define induct_false := $false
for all inputs,
define induct_true := $true
for all groundings,
whenever ? [X0 : state,X1 : state] : X0 != X1 is true, set hoare_1310879719gleton to true
% # SZS output end Definitions and Model Updates.
Finite Model for SWW469_10
tff('declare_$i1',type,'fmb_$i_1':$i).
tff('finite_domain_$i',axiom,
! [X:$i] : (
X = 'fmb_$i_1'
) ).
tff(declare_state,type,state:$tType).
tff(declare_state1,type,fmb_state_1:state).
tff(declare_state2,type,fmb_state_2:state).
tff(finite_domain_state,axiom,
! [X:state] : (
X = fmb_state_1 | X = fmb_state_2
) ).
tff(distinct_domain_state,axiom,
fmb_state_1 != fmb_state_2
).
tff(declare_induct_false,type,induct_false: $o).
tff(induct_false_definition,axiom,~induct_false).
tff(declare_induct_true,type,induct_true: $o).
tff(induct_true_definition,axiom,induct_true).
tff(declare_hoare_1310879719gleton,type,hoare_1310879719gleton: $o).
tff(hoare_1310879719gleton_definition,axiom,hoare_1310879719gleton).
Solution for SEU140+2
% SUCCESS: Derivation has unique formula names
% SUCCESS: All derived formulae have parents and inference information
% WARNING: Took the first false root f1401 as the single derivation root
% SUCCESS: Derivation is acyclic
% SUCCESS: Derivation looks like a refutation
% SUCCESS: Negated conjecture f52 is a leaf or CTH from a conjecture
% SUCCESS: Assumptions are propagated
% SUCCESS: Assumptions are discharged
% NOTICE: Took the conjecture f51 as the proved formula
% CPUTIME: 0.07
% SUCCESS: Verified
% SZS status Verified
fof(f1401,plain,(
$false),
inference(subsumption_resolution,[],[f1400,f210])).
fof(f210,plain,(
~disjoint(sK10,sK12)),
inference(cnf_transformation,[],[f134])).
fof(f134,plain,(
~disjoint(sK10,sK12) & disjoint(sK11,sK12) & subset(sK10,sK11)),
inference(skolemisation,[status(esa),new_symbols(skolem,[sK10,sK11,sK12])],[f88,f133])).
fof(f133,plain,(
? [X0,X1,X2] : (~disjoint(X0,X2) & disjoint(X1,X2) & subset(X0,X1)) => (~disjoint(sK10,sK12) & disjoint(sK11,sK12) & subset(sK10,sK11))),
introduced(definition,[],[choice_axiom])).
fof(f88,plain,(
? [X0,X1,X2] : (~disjoint(X0,X2) & disjoint(X1,X2) & subset(X0,X1))),
inference(flattening,[],[f87])).
fof(f87,plain,(
? [X0,X1,X2] : (~disjoint(X0,X2) & (disjoint(X1,X2) & subset(X0,X1)))),
inference(ennf_transformation,[],[f52])).
fof(f52,negated_conjecture,(
~! [X0,X1,X2] : ((disjoint(X1,X2) & subset(X0,X1)) => disjoint(X0,X2))),
inference(negated_conjecture,[status(cth)],[f51])).
fof(f51,conjecture,(
! [X0,X1,X2] : ((disjoint(X1,X2) & subset(X0,X1)) => disjoint(X0,X2))),
file('Problems/SEU/SEU140+2.p',unknown)).
fof(f1400,plain,(
disjoint(sK10,sK12)),
inference(resolution,[],[f1383,f179])).
fof(f179,plain,(
( ! [X0,X1] : (~disjoint(X0,X1) | disjoint(X1,X0)) )),
inference(cnf_transformation,[],[f72])).
fof(f72,plain,(
! [X0,X1] : (disjoint(X1,X0) | ~disjoint(X0,X1))),
inference(ennf_transformation,[],[f27])).
fof(f27,axiom,(
! [X0,X1] : (disjoint(X0,X1) => disjoint(X1,X0))),
file('Problems/SEU/SEU140+2.p',unknown)).
fof(f1383,plain,(
disjoint(sK12,sK10)),
inference(duplicate_literal_removal,[],[f1380])).
fof(f1380,plain,(
disjoint(sK12,sK10) | disjoint(sK12,sK10)),
inference(resolution,[],[f510,f402])).
fof(f402,plain,(
( ! [X0] : (in(sK8(X0,sK10),sK11) | disjoint(X0,sK10)) )),
inference(resolution,[],[f389,f198])).
fof(f198,plain,(
( ! [X0,X1] : (in(sK8(X0,X1),X1) | disjoint(X0,X1)) )),
inference(cnf_transformation,[],[f130])).
fof(f130,plain,(
! [X0,X1] : ((~disjoint(X0,X1) | ! [X2] : (~in(X2,X1) | ~in(X2,X0))) & ((in(sK8(X0,X1),X1) & in(sK8(X0,X1),X0)) | disjoint(X0,X1)))),
inference(skolemisation,[status(esa),new_symbols(skolem,[sK8])],[f82,f129])).
fof(f129,plain,(
! [X0,X1] : (? [X3] : (in(X3,X1) & in(X3,X0)) => (in(sK8(X0,X1),X1) & in(sK8(X0,X1),X0)))),
introduced(definition,[],[choice_axiom])).
fof(f82,plain,(
! [X0,X1] : ((~disjoint(X0,X1) | ! [X2] : (~in(X2,X1) | ~in(X2,X0))) & (? [X3] : (in(X3,X1) & in(X3,X0)) | disjoint(X0,X1)))),
inference(ennf_transformation,[],[f62])).
fof(f62,plain,(
! [X0,X1] : (~(disjoint(X0,X1) & ? [X2] : (in(X2,X1) & in(X2,X0))) & ~(! [X3] : ~(in(X3,X1) & in(X3,X0)) & ~disjoint(X0,X1)))),
inference(rectify,[],[f43])).
fof(f43,axiom,(
! [X0,X1] : (~(disjoint(X0,X1) & ? [X2] : (in(X2,X1) & in(X2,X0))) & ~(! [X2] : ~(in(X2,X1) & in(X2,X0)) & ~disjoint(X0,X1)))),
file('Problems/SEU/SEU140+2.p',unknown)).
fof(f389,plain,(
( ! [X0] : (~in(X0,sK10) | in(X0,sK11)) )),
inference(superposition,[],[f237,f320])).
fof(f320,plain,(
sK11 = set_union2(sK10,sK11)),
inference(resolution,[],[f180,f208])).
fof(f208,plain,(
subset(sK10,sK11)),
inference(cnf_transformation,[],[f134])).
fof(f180,plain,(
( ! [X0,X1] : (~subset(X0,X1) | set_union2(X0,X1) = X1) )),
inference(cnf_transformation,[],[f73])).
fof(f73,plain,(
! [X0,X1] : (set_union2(X0,X1) = X1 | ~subset(X0,X1))),
inference(ennf_transformation,[],[f28])).
fof(f28,axiom,(
! [X0,X1] : (subset(X0,X1) => set_union2(X0,X1) = X1)),
file('Problems/SEU/SEU140+2.p',unknown)).
fof(f237,plain,(
( ! [X0,X1,X4] : (in(X4,set_union2(X0,X1)) | ~in(X4,X0)) )),
inference(equality_resolution,[],[f145])).
fof(f145,plain,(
( ! [X2,X0,X1,X4] : (in(X4,X2) | ~in(X4,X0) | set_union2(X0,X1) != X2) )),
inference(cnf_transformation,[],[f104])).
fof(f104,plain,(
! [X0,X1,X2] : ((set_union2(X0,X1) = X2 | (((~in(sK1(X0,X1,X2),X1) & ~in(sK1(X0,X1,X2),X0)) | ~in(sK1(X0,X1,X2),X2)) & (in(sK1(X0,X1,X2),X1) | in(sK1(X0,X1,X2),X0) | in(sK1(X0,X1,X2),X2)))) & (! [X4] : ((in(X4,X2) | (~in(X4,X1) & ~in(X4,X0))) & (in(X4,X1) | in(X4,X0) | ~in(X4,X2))) | set_union2(X0,X1) != X2))),
inference(skolemisation,[status(esa),new_symbols(skolem,[sK1])],[f102,f103])).
fof(f103,plain,(
! [X0,X1,X2] : (? [X3] : (((~in(X3,X1) & ~in(X3,X0)) | ~in(X3,X2)) & (in(X3,X1) | in(X3,X0) | in(X3,X2))) => (((~in(sK1(X0,X1,X2),X1) & ~in(sK1(X0,X1,X2),X0)) | ~in(sK1(X0,X1,X2),X2)) & (in(sK1(X0,X1,X2),X1) | in(sK1(X0,X1,X2),X0) | in(sK1(X0,X1,X2),X2))))),
introduced(definition,[],[choice_axiom])).
fof(f102,plain,(
! [X0,X1,X2] : ((set_union2(X0,X1) = X2 | ? [X3] : (((~in(X3,X1) & ~in(X3,X0)) | ~in(X3,X2)) & (in(X3,X1) | in(X3,X0) | in(X3,X2)))) & (! [X4] : ((in(X4,X2) | (~in(X4,X1) & ~in(X4,X0))) & (in(X4,X1) | in(X4,X0) | ~in(X4,X2))) | set_union2(X0,X1) != X2))),
inference(rectify,[],[f101])).
fof(f101,plain,(
! [X0,X1,X2] : ((set_union2(X0,X1) = X2 | ? [X3] : (((~in(X3,X1) & ~in(X3,X0)) | ~in(X3,X2)) & (in(X3,X1) | in(X3,X0) | in(X3,X2)))) & (! [X3] : ((in(X3,X2) | (~in(X3,X1) & ~in(X3,X0))) & (in(X3,X1) | in(X3,X0) | ~in(X3,X2))) | set_union2(X0,X1) != X2))),
inference(flattening,[],[f100])).
fof(f100,plain,(
! [X0,X1,X2] : ((set_union2(X0,X1) = X2 | ? [X3] : (((~in(X3,X1) & ~in(X3,X0)) | ~in(X3,X2)) & ((in(X3,X1) | in(X3,X0)) | in(X3,X2)))) & (! [X3] : ((in(X3,X2) | (~in(X3,X1) & ~in(X3,X0))) & ((in(X3,X1) | in(X3,X0)) | ~in(X3,X2))) | set_union2(X0,X1) != X2))),
inference(nnf_transformation,[],[f7])).
fof(f7,axiom,(
! [X0,X1,X2] : (set_union2(X0,X1) = X2 <=> ! [X3] : (in(X3,X2) <=> (in(X3,X1) | in(X3,X0))))),
file('Problems/SEU/SEU140+2.p',unknown)).
fof(f510,plain,(
( ! [X0] : (~in(sK8(sK12,X0),sK11) | disjoint(sK12,X0)) )),
inference(resolution,[],[f454,f197])).
fof(f197,plain,(
( ! [X0,X1] : (in(sK8(X0,X1),X0) | disjoint(X0,X1)) )),
inference(cnf_transformation,[],[f130])).
fof(f454,plain,(
( ! [X0] : (~in(X0,sK12) | ~in(X0,sK11)) )),
inference(resolution,[],[f199,f271])).
fof(f271,plain,(
disjoint(sK12,sK11)),
inference(resolution,[],[f179,f209])).
fof(f209,plain,(
disjoint(sK11,sK12)),
inference(cnf_transformation,[],[f134])).
fof(f199,plain,(
( ! [X2,X0,X1] : (~disjoint(X0,X1) | ~in(X2,X1) | ~in(X2,X0)) )),
inference(cnf_transformation,[],[f130])).
% SZS output end Proof for SEU140+2
Solution for BOO001-1
% SUCCESS: Derivation has unique formula names
% SUCCESS: All derived formulae have parents and inference information
% WARNING: Took the first false root f295 as the single derivation root
% SUCCESS: Derivation is acyclic
% SUCCESS: Derivation looks like a refutation
% SUCCESS: Negated conjecture f6 is a leaf or CTH from a conjecture
% SUCCESS: Assumptions are propagated
% SUCCESS: Assumptions are discharged
% WARNING: Took the negated conjecture f6 as the proved formula
% CPUTIME: 0.06
% SUCCESS: Verified
% SZS status Verified
fof(f295,plain,(
$false),
inference(trivial_inequality_removal,[],[f289])).
fof(f289,plain,(
a != a),
inference(superposition,[],[f6,f224])).
fof(f224,plain,(
( ! [X0] : (inverse(inverse(X0)) = X0) )),
inference(superposition,[],[f5,f158])).
fof(f158,plain,(
( ! [X0,X1] : (multiply(X1,inverse(X1),X0) = X0) )),
inference(forward_demodulation,[],[f146,f25])).
fof(f25,plain,(
( ! [X2,X0] : (multiply(X0,X2,X0) = X0) )),
inference(forward_demodulation,[],[f22,f3])).
fof(f3,axiom,(
( ! [X2,X3] : (multiply(X2,X2,X3) = X2) )),
file('Problems/BOO/BOO001-1.p',unknown)).
fof(f22,plain,(
( ! [X2,X3,X0,X1] : (multiply(X0,X0,multiply(X1,X2,X3)) = multiply(X0,X2,X0)) )),
inference(forward_demodulation,[],[f13,f3])).
fof(f13,plain,(
( ! [X2,X3,X0,X1] : (multiply(X0,X0,multiply(X1,X2,X3)) = multiply(multiply(X0,X0,X1),X2,X0)) )),
inference(superposition,[],[f1,f3])).
fof(f1,axiom,(
( ! [X2,X3,X0,X1,X4] : (multiply(multiply(X0,X1,X2),X3,multiply(X0,X1,X4)) = multiply(X0,X1,multiply(X2,X3,X4))) )),
file('Problems/BOO/BOO001-1.p',unknown)).
fof(f146,plain,(
( ! [X0,X1] : (multiply(X1,inverse(X1),multiply(X0,X1,X0)) = X0) )),
inference(superposition,[],[f7,f119])).
fof(f119,plain,(
( ! [X3,X0,X1] : (multiply(X3,X1,multiply(X0,inverse(X1),X3)) = X3) )),
inference(forward_demodulation,[],[f118,f88])).
fof(f88,plain,(
( ! [X2,X3,X0,X1,X4] : (multiply(X0,X1,multiply(X2,X3,X0)) = multiply(X0,X1,multiply(X2,X3,multiply(X4,X0,inverse(X1))))) )),
inference(forward_demodulation,[],[f86,f28])).
fof(f28,plain,(
( ! [X2,X3,X0,X1] : (multiply(multiply(X0,X1,X2),X3,X0) = multiply(X0,X1,multiply(X2,X3,X0))) )),
inference(superposition,[],[f1,f25])).
fof(f86,plain,(
( ! [X2,X3,X0,X1,X4] : (multiply(multiply(X0,X1,X2),X3,X0) = multiply(X0,X1,multiply(X2,X3,multiply(X4,X0,inverse(X1))))) )),
inference(superposition,[],[f1,f70])).
fof(f70,plain,(
( ! [X2,X0,X1] : (multiply(X0,X2,multiply(X1,X0,inverse(X2))) = X0) )),
inference(forward_demodulation,[],[f38,f2])).
fof(f2,axiom,(
( ! [X2,X3] : (multiply(X3,X2,X2) = X2) )),
file('Problems/BOO/BOO001-1.p',unknown)).
fof(f38,plain,(
( ! [X2,X0,X1] : (multiply(X1,X0,X0) = multiply(X0,X2,multiply(X1,X0,inverse(X2)))) )),
inference(superposition,[],[f7,f5])).
fof(f118,plain,(
( ! [X2,X3,X0,X1] : (multiply(X3,X1,multiply(X0,inverse(X1),multiply(X2,X3,inverse(X1)))) = X3) )),
inference(superposition,[],[f70,f12])).
fof(f12,plain,(
( ! [X2,X3,X0,X1] : (multiply(X1,X0,multiply(X2,X3,X0)) = multiply(multiply(X1,X0,X2),X3,X0)) )),
inference(superposition,[],[f1,f2])).
fof(f7,plain,(
( ! [X2,X3,X0,X1] : (multiply(X1,X0,multiply(X0,X2,X3)) = multiply(X0,X2,multiply(X1,X0,X3))) )),
inference(superposition,[],[f1,f2])).
fof(f5,axiom,(
( ! [X2,X3] : (multiply(X2,X3,inverse(X3)) = X2) )),
file('Problems/BOO/BOO001-1.p',unknown)).
fof(f6,negated_conjecture,(
a != inverse(inverse(a))),
file('Problems/BOO/BOO001-1.p',unknown)).