refactor(library/data/unit): break unit.lean into smaller pieces
The unit datatype is used by automation. We want to be able to access its declaration without having to access all dependencies (e.g., decidable, subsingleton, inhabited, ...). This is *not* an optimization, but a way to make sure we can "import" unit before we import other declarations.
This commit is contained in:
parent
b575c972bd
commit
758a17ab23
4 changed files with 19 additions and 12 deletions
5
library/data/unit/basic.lean
Normal file
5
library/data/unit/basic.lean
Normal file
|
@ -0,0 +1,5 @@
|
|||
-- Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
||||
-- Released under Apache 2.0 license as described in the file LICENSE.
|
||||
-- Author: Leonardo de Moura
|
||||
inductive unit.{l} : Type.{l} :=
|
||||
star : unit
|
9
library/data/unit/decl.lean
Normal file
9
library/data/unit/decl.lean
Normal file
|
@ -0,0 +1,9 @@
|
|||
-- Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
||||
-- Released under Apache 2.0 license as described in the file LICENSE.
|
||||
-- Author: Leonardo de Moura
|
||||
inductive unit.{l} : Type.{l} :=
|
||||
star : unit
|
||||
|
||||
namespace unit
|
||||
notation `⋆` := star
|
||||
end unit
|
4
library/data/unit/default.lean
Normal file
4
library/data/unit/default.lean
Normal file
|
@ -0,0 +1,4 @@
|
|||
-- Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
||||
-- Released under Apache 2.0 license as described in the file LICENSE.
|
||||
-- Author: Leonardo de Moura
|
||||
import data.unit.decl data.unit.thms data.unit.insts
|
|
@ -1,24 +1,13 @@
|
|||
-- Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
||||
-- Released under Apache 2.0 license as described in the file LICENSE.
|
||||
-- Author: Leonardo de Moura
|
||||
import logic.decidable logic.inhabited
|
||||
import data.unit.decl data.unit.thms logic.decidable logic.inhabited
|
||||
open decidable
|
||||
|
||||
inductive unit.{l} : Type.{l} :=
|
||||
star : unit
|
||||
namespace unit
|
||||
notation `⋆` := star
|
||||
|
||||
-- remove duplication?
|
||||
protected theorem equal (a b : unit) : a = b :=
|
||||
rec_on a (rec_on b rfl)
|
||||
|
||||
protected theorem subsingleton [instance] : subsingleton unit :=
|
||||
subsingleton.intro (λ a b, equal a b)
|
||||
|
||||
theorem eq_star (a : unit) : a = star :=
|
||||
equal a star
|
||||
|
||||
protected definition is_inhabited [instance] : inhabited unit :=
|
||||
inhabited.mk ⋆
|
||||
|
Loading…
Reference in a new issue