Theorem: RegularExpression.matches'_map
File: Mathlib/Computability/RegularExpressions.lean

Proof steps:
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a✝ b : α
f : α → β
a : α
⊢ (map f (char a)).matches' = (Language.map f) (char a).matches'
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a✝ b : α
f : α → β
a : α
⊢ (Language.map f) (char a).matches' = (map f (char a)).matches'
tactic: rw [eq_comm]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a✝ b : α
f : α → β
a : α
⊢ (Language.map f) (char a).matches' = (map f (char a)).matches'
state_after: no goals
tactic: exact image_singleton
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R S : RegularExpression α
⊢ (map f (R + S)).matches' = (Language.map f) (R + S).matches'
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R S : RegularExpression α
⊢ (Language.map f) R.matches' + (Language.map f) S.matches' = (Language.map f) (R.matches' + S.matches')
tactic: simp only [matches'_map, map, matches'_add]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R S : RegularExpression α
⊢ (Language.map f) R.matches' + (Language.map f) S.matches' = (Language.map f) (R.matches' + S.matches')
state_after: no goals
tactic: rw [map_add]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R S : RegularExpression α
⊢ (map f (R.comp S)).matches' = (Language.map f) (R.comp S).matches'
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R S : RegularExpression α
⊢ (Language.map f) R.matches' * (Language.map f) S.matches' = (Language.map f) (R.comp S).matches'
tactic: simp only [matches'_map, map, matches'_mul]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R S : RegularExpression α
⊢ (Language.map f) R.matches' * (Language.map f) S.matches' = (Language.map f) (R.comp S).matches'
state_after: no goals
tactic: erw [map_mul]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R : RegularExpression α
⊢ (map f R.star).matches' = (Language.map f) R.star.matches'
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R : RegularExpression α
⊢ ((Language.map f) R.matches')∗ = (Language.map f) R.matches'∗
tactic: simp_rw [map, matches', matches'_map]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R : RegularExpression α
⊢ ((Language.map f) R.matches')∗ = (Language.map f) R.matches'∗
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R : RegularExpression α
⊢ ⨆ i, (Language.map f) R.matches' ^ i = (Language.map f) (⨆ i, R.matches' ^ i)
tactic: rw [Language.kstar_eq_iSup_pow, Language.kstar_eq_iSup_pow]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R : RegularExpression α
⊢ ⨆ i, (Language.map f) R.matches' ^ i = (Language.map f) (⨆ i, R.matches' ^ i)
state_after: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R : RegularExpression α
⊢ ⨆ i, (Language.map f) (R.matches' ^ i) = (Language.map f) (⨆ i, R.matches' ^ i)
tactic: simp_rw [← map_pow]
state_before: α : Type u_1
β : Type u_2
γ : Type u_3
dec : DecidableEq α
a b : α
f : α → β
R : RegularExpression α
⊢ ⨆ i, (Language.map f) (R.matches' ^ i) = (Language.map f) (⨆ i, R.matches' ^ i)
state_after: no goals
tactic: exact image_iUnion.symm