-
Notifications
You must be signed in to change notification settings - Fork 42
Closed
Description
After #2249, we can modify the SideCondition to keep a set of all defined terms. Instead of looking for the Defined marker, we can look in the SideCondition.
- Add a
HashSetof definedTermLikes toSideCondition. (appetite: S) - Implement a function
assumeDefined :: TermLike variable -> SideCondition variablewhich assumes the definedness of all sub-terms that are implied by the original term. In other words, iftis the original term, we assume a sub-termsis defined if\ceil(t) \implies \ceil(s). Take care with Map and Set to minimize storage! If the size of a Map or set isn, we only wantn^2entries and notn!. (appetite: M) - Implement a function
isDefined :: SideCondition variable -> TermLike variable -> Bool. Again, take care with Map and Set. (appetite: M) - Remove
Defined. ReplacemakeDefinedwithassumeDefined. UseisDefinedinstead of checking pattern attributes. (appetite: M)