This PR changes the signature of `Array.get` to take a Nat and a proof, rather than a `Fin`, for consistency with the rest of the (planned) Array API. Note that because of bootstrapping issues we can't provide `get_elem_tactic` as an autoparameter for the proof. As users will mostly use the `xs[i]` notation provided by `GetElem`, this hopefully isn't a problem. We may restore `Fin` based versions, either here or downstream, as needed, but they won't be the "main" functions. --------- Co-authored-by: David Thrane Christiansen <david@davidchristiansen.dk>
23 lines
1 KiB
Text
23 lines
1 KiB
Text
funind_errors.lean:4:7-4:26: error: unknown identifier 'doesNotExist.induct'
|
||
funind_errors.lean:22:7-22:23: error: invalid field notation, type is not of the form (C ...) where C is a constant
|
||
takeWhile
|
||
has type
|
||
(?m → Bool) → Array ?m → Array ?m
|
||
takeWhile.foo.induct.{u_1} {α : Type u_1} (p : α → Bool) (as : Array α) (motive : Nat → Array α → Prop)
|
||
(case1 :
|
||
∀ (i : Nat) (r : Array α) (h : i < as.size),
|
||
let a := as.get i h;
|
||
p a = true → motive (i + 1) (r.push a) → motive i r)
|
||
(case2 :
|
||
∀ (i : Nat) (r : Array α) (h : i < as.size),
|
||
let a := as.get i h;
|
||
¬p a = true → motive i r)
|
||
(case3 : ∀ (i : Nat) (r : Array α), ¬i < as.size → motive i r) (i : Nat) (r : Array α) : motive i r
|
||
funind_errors.lean:38:7-38:20: error: invalid field notation, type is not of the form (C ...) where C is a constant
|
||
idEven
|
||
has type
|
||
Even ?m → Even ?m
|
||
funind_errors.lean:45:7-45:19: error: invalid field notation, type is not of the form (C ...) where C is a constant
|
||
idAcc
|
||
has type
|
||
Acc ?m ?m → Acc ?m ?m
|