blob: e5fb87f9c34d8d9d6a1697eb5185bbbbf41af53f [file] [edit]
;;
;; some tricky definitions to test the transformations
;;
relation HasSize: nat |- nat
relation TestNestedIter: nat*** |- nat**
var n : nat
var m : nat
rule TestNestedIter:
n**+ |- m*+
-- if (|n*| = m)*+
;; Partiality
syntax side = Side nat -- if nat < 10
def $side(side) : side
def $side(s) = s
def $sidef(nat) : bool
def $sidef(n) = true -- if $side(Side n) = $side(Side n) ;; partial
def $sidef(n) = false -- otherwise
syntax Bool(bool)
syntax Bool(true) = nat
syntax Bool(false) = text
def $testtrue(Bool($sidef(1))) : Bool(true)
def $testtrue(b) = b
def $testfalse(Bool($sidef(11))) : Bool(false)
def $testfalse(b) = b