Documentation

Mathlib.Tactic.Order.Graph.Basic

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
    @[implicit_reducible]
    @[reducible, inline]

    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 v if and only if the algorithm has already entered vertex v.

          Instances For
            partial def Mathlib.Tactic.Order.Graph.buildTransitiveLeProofDFS (g : Graph) (v t : ) (tExpr : Lean.Expr) :
            StateT DFSState Lean.MetaM (Option Lean.Expr)

            DFS algorithm for constructing a proof that x ≤ y by finding a path from x to y in the -graph.

            def Mathlib.Tactic.Order.Graph.buildTransitiveLeProof (g : Graph) (s t : ) :
            AtomM (Option Lean.Expr)

            Given a -graph g, finds a proof of s ≤ t using transitivity.

            Instances For