Adopt lemma as the default keyword
Convert every theorem to lemma (mathlib's default) except the headline results a reader of each module seeks out: analyze_correct (Forward/Sign/Constant), aFix_eq/aFix_le (Fixedpoint), trace (Language), and Stmt.cfg_sufficient (Language/Properties). lemma and theorem are interchangeable keywords, so no references change. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -41,10 +41,10 @@ def map (f : α → β) (g : GGraph α) : GGraph β where
|
||||
inputs := g.inputs
|
||||
outputs := g.outputs
|
||||
|
||||
@[simp] theorem map_size (f : α → β) (g : GGraph α) : (g.map f).size = g.size := rfl
|
||||
@[simp] theorem map_edges (f : α → β) (g : GGraph α) : (g.map f).edges = g.edges := rfl
|
||||
@[simp] theorem map_inputs (f : α → β) (g : GGraph α) : (g.map f).inputs = g.inputs := rfl
|
||||
@[simp] theorem map_outputs (f : α → β) (g : GGraph α) : (g.map f).outputs = g.outputs := rfl
|
||||
@[simp] lemma map_size (f : α → β) (g : GGraph α) : (g.map f).size = g.size := rfl
|
||||
@[simp] lemma map_edges (f : α → β) (g : GGraph α) : (g.map f).edges = g.edges := rfl
|
||||
@[simp] lemma map_inputs (f : α → β) (g : GGraph α) : (g.map f).inputs = g.inputs := rfl
|
||||
@[simp] lemma map_outputs (f : α → β) (g : GGraph α) : (g.map f).outputs = g.outputs := rfl
|
||||
|
||||
def comp (g₁ g₂ : GGraph α) : GGraph α where
|
||||
size := g₁.size + g₂.size
|
||||
@@ -79,9 +79,9 @@ def loop (g : GGraph (List β)) : GGraph (List β) where
|
||||
inputs := [g.loopIn]
|
||||
outputs := [g.loopOut]
|
||||
|
||||
@[simp] theorem loop_inputs (g : GGraph (List β)) : (loop g).inputs = [g.loopIn] := rfl
|
||||
@[simp] lemma loop_inputs (g : GGraph (List β)) : (loop g).inputs = [g.loopIn] := rfl
|
||||
|
||||
@[simp] theorem loop_outputs (g : GGraph (List β)) : (loop g).outputs = [g.loopOut] := rfl
|
||||
@[simp] lemma loop_outputs (g : GGraph (List β)) : (loop g).outputs = [g.loopOut] := rfl
|
||||
|
||||
def skipto (g₁ g₂ : GGraph α) : GGraph α where
|
||||
size := g₁.size + g₂.size
|
||||
@@ -101,10 +101,10 @@ def singleton (a : α) : GGraph α where
|
||||
def wrap (g : GGraph (List β)) : GGraph (List β) :=
|
||||
singleton [] ⤳ g ⤳ singleton []
|
||||
|
||||
@[simp] theorem map_singleton (f : α → β) (a : α) :
|
||||
@[simp] lemma map_singleton (f : α → β) (a : α) :
|
||||
(singleton a).map f = singleton (f a) := rfl
|
||||
|
||||
@[simp] theorem map_comp (f : α → β) (g₁ g₂ : GGraph α) :
|
||||
@[simp] lemma map_comp (f : α → β) (g₁ g₂ : GGraph α) :
|
||||
(g₁ ∙ g₂).map f = g₁.map f ∙ g₂.map f := by
|
||||
rcases g₁ with ⟨n₁, nd₁, e₁, i₁, o₁⟩; rcases g₂ with ⟨n₂, nd₂, e₂, i₂, o₂⟩
|
||||
simp only [GGraph.map, GGraph.comp]
|
||||
@@ -112,7 +112,7 @@ def wrap (g : GGraph (List β)) : GGraph (List β) :=
|
||||
funext i
|
||||
refine Fin.addCases ?_ ?_ i <;> intro j <;> simp [Fin.append_left, Fin.append_right]
|
||||
|
||||
@[simp] theorem map_link (f : α → β) (g₁ g₂ : GGraph α) :
|
||||
@[simp] lemma map_link (f : α → β) (g₁ g₂ : GGraph α) :
|
||||
(g₁ ⤳ g₂).map f = g₁.map f ⤳ g₂.map f := by
|
||||
rcases g₁ with ⟨n₁, nd₁, e₁, i₁, o₁⟩; rcases g₂ with ⟨n₂, nd₂, e₂, i₂, o₂⟩
|
||||
simp only [GGraph.map, GGraph.link]
|
||||
@@ -120,7 +120,7 @@ def wrap (g : GGraph (List β)) : GGraph (List β) :=
|
||||
funext i
|
||||
refine Fin.addCases ?_ ?_ i <;> intro j <;> simp [Fin.append_left, Fin.append_right]
|
||||
|
||||
@[simp] theorem map_loop (h : β → γ) (g : GGraph (List β)) :
|
||||
@[simp] lemma map_loop (h : β → γ) (g : GGraph (List β)) :
|
||||
(loop g).map (List.map h) = loop (g.map (List.map h)) := by
|
||||
rcases g with ⟨n, nd, e, i, o⟩
|
||||
simp only [GGraph.map, GGraph.loop]
|
||||
@@ -128,7 +128,7 @@ def wrap (g : GGraph (List β)) : GGraph (List β) :=
|
||||
funext i
|
||||
refine Fin.addCases ?_ ?_ i <;> intro j <;> simp [Fin.append_left, Fin.append_right]
|
||||
|
||||
@[simp] theorem map_wrap (h : β → γ) (g : GGraph (List β)) :
|
||||
@[simp] lemma map_wrap (h : β → γ) (g : GGraph (List β)) :
|
||||
(wrap g).map (List.map h) = wrap (g.map (List.map h)) := by
|
||||
simp [GGraph.wrap, GGraph.map_link, GGraph.map_singleton]
|
||||
|
||||
@@ -136,20 +136,20 @@ variable (g : GGraph α)
|
||||
|
||||
def indices : List g.Index := List.finRange g.size
|
||||
|
||||
theorem mem_indices (idx : g.Index) : idx ∈ g.indices :=
|
||||
lemma mem_indices (idx : g.Index) : idx ∈ g.indices :=
|
||||
List.mem_finRange idx
|
||||
|
||||
theorem nodup_indices : g.indices.Nodup :=
|
||||
lemma nodup_indices : g.indices.Nodup :=
|
||||
List.nodup_finRange g.size
|
||||
|
||||
def predecessors (idx : g.Index) : List g.Index :=
|
||||
g.indices.filter (fun idx' => (idx', idx) ∈ g.edges)
|
||||
|
||||
theorem mem_predecessors_of_edge {idx₁ idx₂ : g.Index}
|
||||
lemma mem_predecessors_of_edge {idx₁ idx₂ : g.Index}
|
||||
(h : (idx₁, idx₂) ∈ g.edges) : idx₁ ∈ g.predecessors idx₂ :=
|
||||
List.mem_filter.mpr ⟨g.mem_indices idx₁, by simpa using h⟩
|
||||
|
||||
theorem edge_of_mem_predecessors {idx₁ idx₂ : g.Index}
|
||||
lemma edge_of_mem_predecessors {idx₁ idx₂ : g.Index}
|
||||
(h : idx₁ ∈ g.predecessors idx₂) : (idx₁, idx₂) ∈ g.edges := by
|
||||
simpa using (List.mem_filter.mp h).2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user