pub fn extract_from_kripke_ast<'a>(
expr: &'a LogicExpr<'a>,
interner: &Interner,
) -> HwKnowledgeGraphExpand description
Extract a Knowledge Graph from a Kripke-lowered LogicExpr AST.
Walks the AST to identify:
- Signals: predicates that appear with world arguments
- Properties: temporal patterns (∀w’ Accessible_Temporal → …) → safety, (∃w’ Reachable → …) → liveness
- Edges: implication between predicates → Triggers, negated conjunction → Constrains
Signal roles are inferred from structural position:
- Antecedent-only → Input
- Consequent-only → Output
- Both positions → Internal
- Name contains “clk”/“clock” → Clock (overrides position)