(self, k)
return And(res)
Simple path constraint for k-induction:
        each time encodes a different state
Simple path constraint for k-induction:
        each time encodes a different state
Simple path constraint for k - induction : each time encodes a different state
def get_simple_path(self, k):
        """Simple path constraint for k-induction:
        each time encodes a different state
        """
        res = []
        for i in range(k+1):
            subs_i = self.get_subs(i)
            for j in range(i+1, k+1):
                state = []
                subs_j = self.get_subs(j)
                for v in self.system.variables:
                    v_i = v.substitute(subs_i)
                    v_j = v.substitute(subs_j)
                    state.append(Not(EqualsOrIff(v_i, v_j)))
                res.append(Or(state))
        return And(res)
def get_simple_path ( self , k ) : res = [ ] for i in range ( k + 1 ) : subs_i = self . get_subs ( i ) for j in range ( i + 1 , k + 1 ) : state = [ ] subs_j = self . get_subs ( j ) for v in self . system . variables : v_i = v . substitute ( subs_i ) v_j = v . substitute ( subs_j ) state . append ( Not ( EqualsOrIff ( v_i , v_j ) ) ) res . append ( Or ( state ) ) return And ( res )