Graphs for the order tactic #
This module defines the Graph structure and basic operations on it. The order tactic uses
≤-graphs, where the vertices represent atoms, and an edge (x, y) exists if x ≤ y.
An edge in a graph. In the order tactic, the proof field stores the of
atoms[src] ≤ atoms[dst].
- src : ℕ
Source of the edge.
- dst : ℕ
Destination of the edge.
- proof : Lean.Expr
Proof of
atoms[src] ≤ atoms[dst].
Instances For
If g is a Graph, then for a vertex with index v, g[v] is an array containing
the edges starting from this vertex.
Instances For
Adds an edge to the graph.
Instances For
Constructs a directed Graph using ≤ facts. It ignores all other facts.
Instances For
State for the DFS algorithm.
- visited : Std.HashSet ℕ
visited.contains vif and only if the algorithm has already entered vertexv.
Instances For
DFS algorithm for constructing a proof that x ≤ y by finding a path from x to y in the
≤-graph.
Given a ≤-graph g, finds a proof of s ≤ t using transitivity.