Initial draft of VSP check

This commit is contained in:
Brandon Rozek 2024-05-03 13:06:52 -04:00
parent 39a6bf84fb
commit e105c4bf5e
No known key found for this signature in database
GPG key ID: 26E457DA82C9F480
4 changed files with 98 additions and 22 deletions

13
R.py
View file

@ -11,7 +11,7 @@ from logic import (
Disjunction,
Rule,
)
from model import Model, ModelFunction, ModelValue
from model import Model, ModelFunction, ModelValue, violates_vsp
from generate_model import generate_model
@ -71,26 +71,26 @@ a1 = ModelValue("a1")
carrier_set = {a0, a1}
mnegation = ModelFunction({
mnegation = ModelFunction(1, {
a0: a1,
a1: a0
})
mimplication = ModelFunction({
mimplication = ModelFunction(2, {
(a0, a0): a1,
(a0, a1): a1,
(a1, a0): a0,
(a1, a1): a1
})
mconjunction = ModelFunction({
mconjunction = ModelFunction(2, {
(a0, a0): a0,
(a0, a1): a0,
(a1, a0): a0,
(a1, a1): a1
})
mdisjunction = ModelFunction({
mdisjunction = ModelFunction(2, {
(a0, a0): a0,
(a0, a1): a1,
(a1, a0): a1,
@ -122,3 +122,6 @@ satisfiable_models = generate_model(R_logic, model_size, print_model=True)
print(f"There are {len(satisfiable_models)} satisfiable models of element length {model_size}")
for smodel in satisfiable_models:
print(violates_vsp(smodel[0], smodel[1]))