mirror of
https://github.com/Brandon-Rozek/matmod.git
synced 2024-11-08 21:20:33 -05:00
Compare commits
3 commits
43bb036008
...
d14ad52798
Author | SHA1 | Date | |
---|---|---|---|
d14ad52798 | |||
960fa82237 | |||
d1c56fa6a5 |
2 changed files with 13 additions and 10 deletions
14
README.md
14
README.md
|
@ -1,12 +1,16 @@
|
|||
# Matmod: Matrix Model Generator for Implicative Connectives
|
||||
# Matmod: Verify Relevance Properties for Matrix Models with Implicative Connectives
|
||||
|
||||
This repository is mostly an experiment to help
|
||||
me better understand matrix models.
|
||||
Interested in seeing which satisfiable models from [arranstewart/magic](https://github.com/arranstewart/magic) have the variable sharing property?
|
||||
|
||||
You're likely better off using [arranstewart/magic](https://github.com/arranstewart/magic).
|
||||
(1) Generate satisfiable matrix models using `magic`.
|
||||
- Use the `ugly` data format as the output
|
||||
- Keep in mind not all logic features in magic are supported, check out the [GitHub issue tracker](https://github.com/Brandon-Rozek/matmod/issues) to see upcoming features or make your own requests
|
||||
|
||||
We support output from magic using the ugly data format.
|
||||
(2) Run our tool! It will first attempt to parse all the matrices in the output file and then check for the variable sharing property one-by-one.
|
||||
|
||||
```
|
||||
python3 parse_magic.py < UGLY_FILE_FROM_MAGIC
|
||||
```
|
||||
|
||||
If you face any troubles, feel free to reach out. This tool also has capabilities to generate satisfiable models given a specification (see: R.py), however, it is much slower than magic so you're better off using that.
|
||||
|
||||
|
|
|
@ -80,9 +80,8 @@ def carrier_set_from_size(size: int):
|
|||
def parse_size(infile: TextIO) -> Optional[int]:
|
||||
"""
|
||||
Parse the line representing the matrix size.
|
||||
NOTE: Elements are represented in hexidecimal.
|
||||
"""
|
||||
size = int(next(infile), 16)
|
||||
size = int(next(infile))
|
||||
if size == -1:
|
||||
return None
|
||||
assert size > 0, "Unexpected size"
|
||||
|
@ -110,16 +109,16 @@ def parse_negation(infile: TextIO, size: int) -> Optional[ModelFunction]:
|
|||
|
||||
def mvalue_from_index(i: int):
|
||||
"""
|
||||
Given an index, return the hexidecimal
|
||||
Given an index, return the
|
||||
representation of the model value.
|
||||
"""
|
||||
return ModelValue(f"a{hex(i)[-1]}")
|
||||
return ModelValue(f"a{i}")
|
||||
|
||||
def parse_mvalue(x: str) -> ModelValue:
|
||||
"""
|
||||
Parse an element and return the model value.
|
||||
"""
|
||||
return mvalue_from_index(int(x, 16))
|
||||
return mvalue_from_index(int(x))
|
||||
|
||||
def determine_cresult(size: int, ordering: Dict[ModelValue, ModelValue], a: ModelValue, b: ModelValue) -> ModelValue:
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue