Langlib

Langlib.Classes.RecursivelyEnumerable.Basics.Lifting

Unrestricted Lifting #

This file lifts unrestricted grammars across embeddings of nonterminal types.

Main declarations #

def lift_symbol_ {T N₀ N : Type} (lift_N : N₀N) :
symbol T N₀symbol T N
Equations
Instances For
    def sink_symbol_ {T N₀ N : Type} (sink_N : NOption N₀) :
    symbol T NOption (symbol T N₀)
    Equations
    Instances For
      def lift_string_ {T N₀ N : Type} (lift_N : N₀N) :
      List (symbol T N₀)List (symbol T N)
      Equations
      Instances For
        def sink_string_ {T N₀ N : Type} (sink_N : NOption N₀) :
        List (symbol T N)List (symbol T N₀)
        Equations
        Instances For
          def lift_rule_ {T N₀ N : Type} (lift_N : N₀N) :
          grule T N₀grule T N
          Equations
          Instances For
            theorem sink_string_map_terminal_ {T N₀ N : Type} (sink_N : NOption N₀) (w : List T) :

            sink_string_ preserves terminal-only lists.

            theorem lift_string_map_terminal_ {T N₀ N : Type} (lift_N : N₀N) (w : List T) :

            lift_string_ preserves terminal-only lists.

            structure lifted_grammar_ (T : Type) :
            Instances For
              theorem lift_deri_ {T : Type} (lg : lifted_grammar_ T) {w₁ w₂ : List (symbol T lg.g₀.nt)} (hyp : grammar_derives lg.g₀ w₁ w₂) :
              def good_letter_ {T : Type} {lg : lifted_grammar_ T} :
              symbol T lg.g.ntProp
              Equations
              Instances For
                def good_string_ {T : Type} {lg : lifted_grammar_ T} (s : List (symbol T lg.g.nt)) :
                Equations
                Instances For
                  theorem sink_deri_ {T : Type} (lg : lifted_grammar_ T) {w₁ w₂ : List (symbol T lg.g.nt)} (hyp : grammar_derives lg.g w₁ w₂) (ok_input : good_string_ w₁) :