-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathlakefile.lean
67 lines (51 loc) · 1.73 KB
/
lakefile.lean
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/-
Copyright Cedar Contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-/
import Lake
open Lake DSL
meta if get_config? env = some "dev" then -- dev is so not everyone has to build it
require "leanprover" / "doc-gen4" @ git "v4.15.0"
require "leanprover-community" / "batteries" @ git "v4.15.0"
package Cedar
@[default_target]
lean_lib Cedar where
defaultFacets := #[LeanLib.staticFacet]
lean_lib DiffTest where
defaultFacets := #[LeanLib.staticFacet]
lean_lib UnitTest where
defaultFacets := #[LeanLib.staticFacet]
lean_lib Protobuf where
defaultFacets := #[LeanLib.staticFacet]
lean_lib CedarProto where
defaultFacets := #[LeanLib.staticFacet]
lean_exe CedarUnitTests where
root := `UnitTest.Main
lean_exe Cli where
root := `Cli.Main
/--
Check that Cedar.Thm imports all top level proofs.
USAGE:
lake run checkThm
lake lint
-/
@[lint_driver]
script checkThm do
let thm ← IO.FS.readFile ⟨"Cedar/Thm.lean"⟩
let dir ← System.FilePath.readDir ⟨"Cedar/Thm/"⟩
for entry in dir.toList do
let fn := entry.fileName
if fn.endsWith ".lean" then
let ln := s!"import Cedar.Thm.{fn.dropRight 5}"
if thm.replace ln "" == thm then
IO.println s!"Cedar.Thm does not import Cedar/Thm/{fn}"
return 1
return 0