This repository was archived by the owner on Apr 25, 2024. It is now read-only.

Description
Instead of taking a KInner, it should be:
def __init__(self, config: KInner, constraints: Iterable[KInner] = ()) -> None:
check_config(config)
constraints = self._normalize_constraints(constraints)
object.__setattr__(self, 'config', config)
object.__setattr__(self, 'constraints', constraints)
and
@staticmethod
def from_term(term: KInner) -> 'CTerm':
config, constraint = split_config_and_constraints(term)
return CTerm(config, constraints)
Edit: added implementation of from_term for unambiguity.
Rationale
CTerm is often instantiated as
CTerm(mlAnd([config] + constraints))