kdrag.termination.lex_gt

kdrag.termination.lex_gt(es: list[~z3.z3.ExprRef], es1: list[~z3.z3.ExprRef], measure=<function default_measure>) BoolRef

Lexicographic greater than on lists of expressions.

>>> x, y = smt.Consts("x y", kd.Nat)
>>> _ = kd.prove(smt.Implies(x.is_S, lex_gt([x], [x.pred])))
>>> _ = kd.prove(smt.Implies(y.is_S, lex_gt([x, y], [x, y.pred])))
>>> _ = kd.prove(smt.Implies(y.is_S, smt.Not(lex_gt([x, y.pred], [x, y]))))
>>> _ = kd.prove(smt.Not(lex_gt([x, y], [x, y])))
>>> _ = kd.prove(smt.Implies(x.is_S, lex_gt([x, y], [x.pred, y])))
Parameters:
  • es (list[ExprRef])

  • es1 (list[ExprRef])

Return type:

BoolRef