|
| 1 | + |
| 2 | +package ortholattices |
| 3 | +import ortholattices.algorithms.* |
| 4 | +import Datastructures.* |
| 5 | + |
| 6 | +object Helpers { |
| 7 | + |
| 8 | + def bot: Formula = Literal(false) |
| 9 | + def top: Formula = Literal(true) |
| 10 | + def neg(f: Formula): Neg = Neg(f) |
| 11 | + def and(args: List[Formula]): And = And(args) |
| 12 | + def and(f:Formula*): And = And(f.toList) |
| 13 | + def or(args: List[Formula]): Or = Or(args) |
| 14 | + def or(f:Formula*): Or = Or(f.toList) |
| 15 | + def iff(f: Formula, g: Formula): And = and(implies(f, g), implies(g, f)) |
| 16 | + def implies(f: Formula, g: Formula): Formula = neg(or(neg(f), g)) |
| 17 | + |
| 18 | + |
| 19 | + val OLAlgo = new OLAlgorithm |
| 20 | + val OcbslAlgo = new OcbslAlgorithm |
| 21 | + |
| 22 | + def ¬(f: Formula): Neg = Neg(f) |
| 23 | + extension (f: Formula) { |
| 24 | + def &(g: Formula): And = and(f, g) |
| 25 | + def /\(g: Formula): And = and(f, g) |
| 26 | + def |(g: Formula): Or = or(f, g) |
| 27 | + def \/(g: Formula): Or = or(f, g) |
| 28 | + def unary_! : Neg = Neg(f) |
| 29 | + |
| 30 | + def <->(g: Formula): And = iff(f, g) |
| 31 | + def -->(g: Formula): Formula = implies(f, g) |
| 32 | + |
| 33 | + |
| 34 | + def OLnormalize: Formula = OLAlgo.reducedForm(f) |
| 35 | + def OcbslNormalize: Formula = OcbslAlgo.reducedForm(f) |
| 36 | + infix def ~(g: Formula): Boolean = OLAlgo.isSame(f, g) |
| 37 | + } |
| 38 | + |
| 39 | + def ⊥ : Formula = bot |
| 40 | + def ⊤ : Formula = top |
| 41 | + |
| 42 | + given conv_false: Conversion[false, Formula] = _ => bot |
| 43 | + given conv_true: Conversion[true, Formula] = _ => top |
| 44 | + |
| 45 | + |
| 46 | + def Variable(id:Int): Variable = new Variable(id) |
| 47 | + |
| 48 | + val x0 = Variable(0) |
| 49 | + val x1 = Variable(1) |
| 50 | + val x2 = Variable(2) |
| 51 | + val x3 = Variable(3) |
| 52 | + val x4 = Variable(4) |
| 53 | + val x5 = Variable(5) |
| 54 | + val x6 = Variable(6) |
| 55 | + val x7 = Variable(7) |
| 56 | + val x8 = Variable(8) |
| 57 | + val x9 = Variable(9) |
| 58 | + val x10 = Variable(10) |
| 59 | + val x11 = Variable(11) |
| 60 | + val x12 = Variable(12) |
| 61 | + val x13 = Variable(13) |
| 62 | + val x14 = Variable(14) |
| 63 | + val x15 = Variable(15) |
| 64 | + val x16 = Variable(16) |
| 65 | + val x17 = Variable(17) |
| 66 | + val x18 = Variable(18) |
| 67 | + val x19 = Variable(19) |
| 68 | + val x20 = Variable(20) |
| 69 | + val x21 = Variable(21) |
| 70 | + val x22 = Variable(22) |
| 71 | + val x23 = Variable(23) |
| 72 | + val x24 = Variable(24) |
| 73 | + val x25 = Variable(25) |
| 74 | + val x26 = Variable(26) |
| 75 | + val x27 = Variable(27) |
| 76 | + val x28 = Variable(28) |
| 77 | + val x29 = Variable(29) |
| 78 | + val x30 = Variable(30) |
| 79 | + |
| 80 | +} |
0 commit comments