Theorem: FirstOrder.Language.structure_simpleGraphOfStructure
File: Mathlib/ModelTheory/Graph.lean

tactic: ext
state_before: L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
⊢ SimpleGraph.structure (simpleGraphOfStructure V) = S

tactic: case funMap n f xs =>
  exact (IsRelational.empty_functions n).elim f
state_before: case funMap.h.h.h
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
x✝² : ℕ
x✝¹ : Functions Language.graph x✝²
x✝ : Fin x✝² → V
⊢ funMap x✝¹ x✝ = funMap x✝¹ x✝

case RelMap.h.h.h.a
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
x✝² : ℕ
x✝¹ : Relations Language.graph x✝²
x✝ : Fin x✝² → V
⊢ RelMap x✝¹ x✝ ↔ RelMap x✝¹ x✝

tactic: exact (IsRelational.empty_functions n).elim f
state_before: L : Language
α : Type w
V : Type w'
n✝ : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
n : ℕ
f : Functions Language.graph n
xs : Fin n → V
⊢ funMap f xs = funMap f xs

tactic: rw [iff_eq_eq]
state_before: L : Language
α : Type w
V : Type w'
n✝ : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
n : ℕ
r : Relations Language.graph n
xs : Fin n → V
⊢ RelMap r xs ↔ RelMap r xs

tactic: cases' n with n
state_before: L : Language
α : Type w
V : Type w'
n✝ : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
n : ℕ
r : Relations Language.graph n
xs : Fin n → V
⊢ RelMap r xs = RelMap r xs

tactic: exact r.elim
state_before: case zero
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
r : Relations Language.graph Nat.zero
xs : Fin Nat.zero → V
⊢ RelMap r xs = RelMap r xs

tactic: cases' n with n
state_before: case succ
L : Language
α : Type w
V : Type w'
n✝ : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
n : ℕ
r : Relations Language.graph (Nat.succ n)
xs : Fin (Nat.succ n) → V
⊢ RelMap r xs = RelMap r xs

tactic: exact r.elim
state_before: case succ.zero
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
r : Relations Language.graph (Nat.succ Nat.zero)
xs : Fin (Nat.succ Nat.zero) → V
⊢ RelMap r xs = RelMap r xs

tactic: cases' n with n
state_before: case succ.succ
L : Language
α : Type w
V : Type w'
n✝ : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
n : ℕ
r : Relations Language.graph (Nat.succ (Nat.succ n))
xs : Fin (Nat.succ (Nat.succ n)) → V
⊢ RelMap r xs = RelMap r xs

tactic: cases r
state_before: case succ.succ.zero
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
r : Relations Language.graph (Nat.succ (Nat.succ Nat.zero))
xs : Fin (Nat.succ (Nat.succ Nat.zero)) → V
⊢ RelMap r xs = RelMap r xs

tactic: change RelMap adj ![xs 0, xs 1] = _
state_before: case succ.succ.zero.unit
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
xs : Fin (Nat.succ (Nat.succ Nat.zero)) → V
⊢ RelMap PUnit.unit xs = RelMap PUnit.unit xs

tactic: refine' congr rfl (funext _)
state_before: case succ.succ.zero.unit
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
xs : Fin (Nat.succ (Nat.succ Nat.zero)) → V
⊢ RelMap adj ![xs 0, xs 1] = RelMap PUnit.unit xs

tactic: simp [Fin.forall_fin_two]
state_before: case succ.succ.zero.unit
L : Language
α : Type w
V : Type w'
n : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
xs : Fin (Nat.succ (Nat.succ Nat.zero)) → V
⊢ ∀ (x : Fin (Nat.succ 1)), Matrix.vecCons (xs 0) ![xs 1] x = xs x

tactic: exact r.elim
state_before: case succ.succ.succ
L : Language
α : Type w
V : Type w'
n✝ : ℕ
S : Structure Language.graph V
inst✝ : V ⊨ Theory.simpleGraph
n : ℕ
r : Relations Language.graph (Nat.succ (Nat.succ (Nat.succ n)))
xs : Fin (Nat.succ (Nat.succ (Nat.succ n))) → V
⊢ RelMap r xs = RelMap r xs