Skip to content

Commit fa63a0b

Browse files
committed
add default target for proofs. edit readme
1 parent a3e2622 commit fa63a0b

File tree

2 files changed

+32
-35
lines changed

2 files changed

+32
-35
lines changed

etch4/lakefile.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,8 @@ lean_exe bench {
99
root := `Etch.Benchmark
1010
}
1111

12+
@[default_target]
13+
lean_lib Etch.Verification.Main
14+
1215
require mathlib from git
1316
"https://github.com/leanprover-community/mathlib4/"@"5ed65e18440bf46dc8dda58b5463377f938d717c"

readme.md

Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,15 @@
11
# Etch
22

3-
This repository implements indexed streams, a way to represent fused
4-
"contraction programs" like those found in sparse tensor algebra and relational
3+
This repository implements indexed streams, a representation for fused
4+
*contraction programs* like those found in sparse tensor algebra and relational
55
algebra.
66

7-
Correctness proofs are written in [Lean 3][lean3], while the compiler is
8-
written in the [Lean 4][lean4] language. We hope to port the proofs to Lean 4
9-
soon.
7+
Correctness proofs and compiler are written in the [Lean 4][lean4] language.
108

11-
[lean3]: https://github.com/leanprover-community/lean
129
[lean4]: https://github.com/leanprover/lean4
1310

1411
## Directory structure
1512

16-
### Correctness proofs
17-
18-
```
19-
.
20-
└── src
21-
   └── verification
22-
   ├── code_generation # WIP code generation proofs
23-
   │   └── ...
24-
   ├── semantics # correctness proofs
25-
   │   ├── README.md
26-
   │   └── ...
27-
   └── test.lean
28-
```
29-
3013
### Compiler and benchmarks
3114

3215
```
@@ -44,6 +27,8 @@ etch4
4427
│   ├── Benchmark.lean # benchmark queries
4528
│   ├── Benchmark
4629
│   │   └── ...
30+
│   ├── Verification # stream model formalization
31+
│   │   └── README.md
4732
│   ├── KRelation.lean # work in progress
4833
│   ├── Omni.lean
4934
│   └── InductiveStream…
@@ -60,16 +45,7 @@ etch4
6045
└── taco_kernels.c
6146
```
6247

63-
## Build proofs
64-
65-
First install [Lean 3](https://leanprover-community.github.io/get_started.html).
66-
In the root directory, run
67-
```
68-
leanproject get-mathlib-cache
69-
leanproject build
70-
```
71-
72-
## Build compiler
48+
## Build compiler and proofs
7349

7450
First install [Lean 4](https://leanprover.github.io/lean4/doc/quickstart.html).
7551
In the `etch4` directory, run
@@ -155,16 +131,34 @@ steps instead.
155131

156132
## Publications
157133

158-
This repo implements indexed streams as defined in this paper:
134+
This repository implements indexed streams as defined in the paper:
159135

160136
> Scott Kovach, Praneeth Kolichala, Tiancheng Gu, and Fredrik Kjolstad. 2023.
161137
> Indexed Streams: A Formal Intermediate Representation for Fused Contraction
162138
> Programs. To appear in <em><cite>Proc. ACM Program. Lang.</cite></em> 7,
163139
> PLDI, Article 154 (June 2023), 25 pages. https://doi.org/10.1145/3591268
164140
165-
A preprint is available at https://cutfree.net/PLDI_2023_indexed_streams.pdf.
141+
## Old Correctness proofs
142+
143+
These were written originally but recently automatically ported to Lean4.
144+
145+
```
146+
.
147+
└── src
148+
   └── verification
149+
   ├── code_generation # WIP code generation proofs
150+
   │   └── ...
151+
   ├── semantics # correctness proofs
152+
   │   ├── README.md
153+
   │   └── ...
154+
   └── test.lean
155+
```
166156

167-
There's also an earlier preprint:
157+
### Build old proofs
168158

169-
> Scott Kovach and Fredrik Kjolstad. 2022. Correct Compilation of Semiring
170-
> Contractions. arXiv:[2207.13291](https://arxiv.org/abs/2207.13291) [cs.PL]
159+
First install [Lean 3](https://leanprover-community.github.io/get_started.html).
160+
In the root directory, run
161+
```
162+
leanproject get-mathlib-cache
163+
leanproject build
164+
```

0 commit comments

Comments
 (0)