correct lipshitz bound for stl predicates

This commit is contained in:
Marcell Vazquez-Chanlatte 2017-03-20 11:59:34 -07:00
parent 6489667970
commit 0d4a703dcc

View file

@ -121,12 +121,12 @@ def from_mtl(phi:MTL, ap_map:Dict[AtomicPred, LinEq]) -> STL:
focus = AP_lens(phi) focus = AP_lens(phi)
return focus.modify(ap_map.get) return focus.modify(ap_map.get)
def _lineq_lipschitz(lineq):
return sum(map(abs, lens(lineq).terms.each_().coeff.get_all()))
def linear_stl_lipschitz(phi): def linear_stl_lipschitz(phi):
r = max(abs(c) for c in terms_lens(phi).coeff.get_all()) """Infinity norm lipschitz bound of linear inequality predicate."""
try: return float(max(map(_lineq_lipschitz, lineq_lens(phi).get_all())))
return float(r)
except TypeError:
return r
# EDSL # EDSL