Theorem: selectColumns3_spec3 (Table/Proofs.lean)

State before:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
⊢ ∀ (t : Table sch) (cs : List (CertifiedHeader sch)), nrows (selectColumns3 t cs) = nrows t
Tactic:
intro t cs
State after:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
cs : List (CertifiedHeader sch)
⊢ nrows (selectColumns3 t cs) = nrows t

State before:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
cs : List (CertifiedHeader sch)
⊢ nrows (selectColumns3 t cs) = nrows t
Tactic:
simp only [nrows, selectColumns3, Schema.length_eq_List_length]
State after:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
cs : List (CertifiedHeader sch)
⊢ List.length (List.map (fun r => Row.pick r cs) t.rows) = List.length t.rows

State before:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
cs : List (CertifiedHeader sch)
⊢ List.length (List.map (fun r => Row.pick r cs) t.rows) = List.length t.rows
Tactic:
apply List.length_map
State after:
no goals