Langlib

Langlib.Grammars.LR.Equivalence.DPDAToLR.ActiveHeads

Source heads along active characteristic spines #

The visible prefix alone does not determine an arbitrary active occurrence: an epsilon edge may leave the terminal prefix unchanged. What is unique is the source of two introducing edges for the same active list child. The parent spines retained by Introduces are the history needed to state that property without losing the partial derivation tree.

The three kinds of characteristic nonterminal which expose a stack head. The tag is essential: a single-symbol return and a nonempty-list split may have the same operational state and top-of-stack while representing different edges of the characteristic derivation tree.

Instances For

    Parent kind, state, and exposed stack symbol of a characteristic nonterminal. Empty-list nodes have no exposed source symbol. The grammar root denotes the boot configuration of the normalized empty-stack PDA.

    Equations
    Instances For
      def DPDA_to_LR.activeSource {Q T S : Type} [Fintype Q] [Fintype T] [Fintype S] (M : DPDA Q T S) :

      The untagged operational source is occasionally convenient when the parent form is already known.

      Equations
      Instances For
        theorem DPDA_to_LR.ActiveSpine.start_eq_nil {Q T S : Type} [Fintype Q] [Fintype T] [Fintype S] (M : DPDA Q T S) {p : List (symbol T (Nonterminal M))} {suffix : List T} (h : ActiveSpine M p PDA_to_CFG.N.start suffix) :
        p = [] suffix = []

        The start symbol occurs only at the root of an active spine.

        def DPDA_to_LR.ActiveHeadUnique {Q T S : Type} [Fintype Q] [Fintype T] [Fintype S] (M : DPDA Q T S) :

        History-sensitive head uniqueness required by the reverse-edge argument. The common list child and one symbol of its following input determine the kind and source configuration head of its two possible parent edges.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def DPDA_to_LR.IsEpsilonRule {Q T S : Type} [Fintype Q] [Fintype T] [Fintype S] (M : DPDA Q T S) (rule : Nonterminal M × List (symbol T (Nonterminal M))) :

          A normalized characteristic rule generated by an epsilon transition.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            The exact epsilon-bearing residual of active-head uniqueness. All pairs without an epsilon edge reduce to stable read heads or to syntactic cancellation; the useful-epsilon-cycle argument proves this remaining part.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For