Comments (5)
The bug was related to how the parser kept lists of sorts for bounded variables. The TPTP::sortOf
function assumed that this list was non-empty but this was not the case where a variable was first quantified and then used freely. The fix is to add a check in TPTP::sortOf
to see if the list of sorts is empty and if so treat the variable freely. A better fix would be to remove a sort list from the _variableSorts
map when this list became empty, but Map.hpp does not support remove.
from vampire.
The formula is not well-sorted. Since the sort of X is not declared, it is
assumed to have the default sort $i. X = 1 should cause an syntax error
message. In general, TPTP forbids free variables, this syntax is
Vampire-only.
A
On 14 April 2015 at 14:03, Giles [email protected] wrote:
The bug was related to how the parser kept lists of sorts for bounded
variables. The TPTP::sortOf function assumed that this list was non-empty
but this was not the case where a variable was first quantified and then
used freely. The fix is to add a check in TPTP::sortOf to see if the list
of sorts is empty and if so treat the variable freely. A better fix would
be to remove a sort list from the _variableSorts map when this list
became empty, but Map.hpp does not support remove.—
Reply to this email directly or view it on GitHub
#24 (comment).
from vampire.
The formula he gave was actually
fof(1, axiom, (![X]: (X = i)) | (X = i)).
so everything had type $i. But for
tff(ttype,type, (t : $tType)).
tff(1, axiom, (![X:t]: (X = i)) | (X = i)).
we have a syntax error as the uses of i have different types. Also for
fof(1, axiom, (![X]: (X = i)) | (X = 1)).
Vampire will treat 1 as being a constant of type $i as it is in an equality with a variable of type $i and fof formulas do not interpret integers as integers. For
tff(1, axiom, (![X]: (X = i)) | (X = 1)).
we get the syntax error you suggest. It is slightly odd that we can use integer symbols as constant symbols in fof.
This is what Vampire is currently doing rather than my suggestion for what it should do. The fact that free variables are not part of TPTP explains why this issue was not seen previously as one would expect it be very common in problems mixing quantified and free variables.
from vampire.
Giles is right. I remember now pointed out to Geoff, even more than once,
that this discrepancy between TFF and FOF is a nuisance and should be
abolished.
A
On 14 April 2015 at 15:15, Giles [email protected] wrote:
The formula he gave was actually
fof(1, axiom, (![X]: (X = i)) | (X = i)).
so everything had type $i. But for
tff(ttype,type, (t : $tType)).
tff(1, axiom, (![X:t]: (X = i)) | (X = i)).we have a syntax error as the uses of i have different types. Also for
fof(1, axiom, (![X]: (X = i)) | (X = 1)).
Vampire will treat 1 as being a constant of type $i as it is in an
equality with a variable of type $i and fof formulas do not interpret
integers as integers. Fortff(1, axiom, (![X]: (X = i)) | (X = 1)).
we get the syntax error you suggest. It is slightly odd that we can use
integer symbols as constant symbols in fof.This is what Vampire is currently doing rather than my suggestion for what
it should do. The fact that free variables are not part of TPTP explains
why this issue was not seen previously as one would expect it be very
common in problems mixing quantified and free variables.—
Reply to this email directly or view it on GitHub
#24 (comment).
from vampire.
This was fixed a long time ago
from vampire.
Related Issues (20)
- The version of z3 we are currently linking against (tag: z3-4.12.2 from May) again fails to deliver definite answers sometimes HOT 3
- Smart ep=RSTC skips congruences for introduced symbols for which it shouldn't? HOT 2
- [macOS] Build uses unsupported flags which break it: `cc1plus: error: '-fno-fat-lto-objects' are supported only with linker plugin` HOT 40
- Revive `gcov` HOT 2
- Linking error when building Debug version in Cygwin HOT 8
- Miscellanious Crashes HOT 14
- 3 tests fail on Sonoma / aarch64 HOT 3
- don't synchronise proofs if we don't print them HOT 1
- Unexpected "User error: This version cannot be used with this logic!" HOT 1
- Reimplement Lib/Set.hpp as a wrapper of std::unordered_set HOT 9
- A different operator precedence when parsing HOL? HOT 1
- FDI is really not very good and not type-safe.
- Crash on `PUZ091^5` with NewCNF HOT 4
- Bad saturation on `SYO500_8.008` HOT 11
- How make Vampire return true/false for a given problem (question)? HOT 5
- UPDR incorrect (deletes too much) in the presence of specially parsed function definitions from SMT HOT 4
- SaturationAlgorithm::addInputSOSClause is currently skipping forwardSimplify
- No proof with implies-transitive SMT problem (regression) HOT 4
- Vampire crashing when printing a finite model: HOT 1
- Printing some large proofs kills us? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vampire.