This PR adds “sparse casesOn” constructions. They are similar to `.casesOn`, but have arms only for some constructors and a catch-all (providing `t.ctorIdx ≠ 42` assumptions). The compiler has native support for these constructors and now (because of the similarity) also the per-constructor elimination principles.
14 lines
471 B
Text
14 lines
471 B
Text
/-
|
|
Copyright (c) 2020 Microsoft Corporation. All rights reserved.
|
|
Released under Apache 2.0 license as described in the file LICENSE.
|
|
Authors: Leonardo de Moura
|
|
-/
|
|
module
|
|
|
|
prelude
|
|
public import Lean.Meta.Constructions.CasesOn
|
|
public import Lean.Meta.Constructions.NoConfusion
|
|
public import Lean.Meta.Constructions.RecOn
|
|
public import Lean.Meta.Constructions.BRecOn
|
|
public import Lean.Meta.Constructions.CasesOnSameCtor
|
|
public import Lean.Meta.Constructions.SparseCasesOn
|