Theorem: selectRows1_spec2 (Table/Proofs.lean)

State before:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
⊢ ∀ (t : Table sch) (ns : List (Fin (nrows t))), nrows (selectRows1 t ns) = List.length ns
Tactic:
intro t ns
State after:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
ns : List (Fin (nrows t))
⊢ nrows (selectRows1 t ns) = List.length ns

State before:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
ns : List (Fin (nrows t))
⊢ nrows (selectRows1 t ns) = List.length ns
Tactic:
rw [selectRows1, nrows, Schema.length_eq_List_length]
State after:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
ns : List (Fin (nrows t))
⊢ List.length { rows := List.map (fun n => getRow t n.val) ns }.rows = List.length ns

State before:
η : Type u_η
dec_η : DecidableEq η
sch : Schema
t : Table sch
ns : List (Fin (nrows t))
⊢ List.length { rows := List.map (fun n => getRow t n.val) ns }.rows = List.length ns
Tactic:
apply List.length_map
State after:
no goals