Documentation

LeanPool.PDL.Vocab

Vocabulary and other Syntax functions (part of Section 2.1) #

Vocab #

@[reducible, inline]
abbrev PDL.Vocab :

The finite set of proposition and program indices occurring in syntax.

Equations
Instances For

    The atomic proposition indices in a vocabulary.

    Equations
    Instances For

      The atomic program indices in a vocabulary.

      Equations
      Instances For

        The proposition and program vocabulary occurring in a program.

        Equations
        Instances For

          The proposition and program vocabulary occurring in a formula.

          Equations
          Instances For

            The union of the vocabularies in a list.

            Equations
            Instances For

              The union of the vocabularies in a finset.

              Equations
              Instances For
                @[reducible, inline]

                The combined vocabulary of a list of formulas.

                Equations
                Instances For
                  @[reducible, inline]

                  The combined vocabulary of a list of programs.

                  Equations
                  Instances For
                    @[reducible, inline]

                    The combined vocabulary of a finset of formulas.

                    Equations
                    Instances For
                      @[reducible, inline]

                      The combined vocabulary of a finset of programs.

                      Equations
                      Instances For
                        theorem PDL.Finset.mem_fvoc {X : Finset Formula} {x : ℕ ⊕ ℕ} :
                        x ∈ X.pdlFvoc ↔ ∃ φ ∈ X, x ∈ φ.voc
                        theorem PDL.Finset.fvoc_mono {X Y : Finset Formula} (h : X ⊆ Y) :
                        theorem PDL.fvoc_subset_of_mem_voc {L L' : Finset Formula} (h : ∀ f ∈ L, ∃ g ∈ L', f.voc ⊆ g.voc) :
                        L.pdlFvoc ⊆ L'.pdlFvoc

                        The vocabulary of a finset of formulas only grows when we add formulas with larger vocabularies.

                        theorem PDL.Vocab.fromList_map_iff {α : Type u_1} (n : ℕ ⊕ ℕ) (L : List α) (f : α → Vocab) :
                        n ∈ fromList (List.map f L) ↔ ∃ x ∈ L, n ∈ f x
                        theorem PDL.Vocab.fromListProgram_map_iff {vocabOfProgram : Program → Vocab} (n : ℕ ⊕ ℕ) (L : List Program) :
                        n ∈ fromList (List.map vocabOfProgram L) ↔ ∃ α ∈ L, n ∈ vocabOfProgram α
                        theorem PDL.Formula.voc_boxes {δ : List Program} {φ : Formula} :
                        (boxes δ φ).voc = δ.pdlPvoc ∪ φ.voc

                        The vocabulary of a loaded formula after erasing its loading annotations.

                        Equations
                        Instances For

                          The vocabulary of a negated loaded formula after erasing its loading annotations.

                          Equations
                          Instances For

                            Tests in a program #

                            theorem PDL.testsOfProgram.voc (α : Program) {τ : Formula} (τ_in : τ ∈ testsOfProgram α) :
                            τ.voc ⊆ α.voc

                            Subprograms #

                            @[simp]
                            theorem PDL.subprograms_voc {α β : Program} :
                            β ∈ subprograms α → β.voc ⊆ α.voc

                            Fresh variables #