Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
25fe371
Add classifiers
natsukagami Nov 5, 2025
30c5610
Update types
natsukagami Nov 5, 2025
54e32f2
Subtyping
natsukagami Nov 7, 2025
1098a00
Add bounds proofs to renaming
natsukagami Nov 11, 2025
c2b1353
Up to renaming
natsukagami Nov 11, 2025
eac3850
Substitution done?
natsukagami Nov 11, 2025
74845c0
Some progress on boundary
natsukagami Nov 11, 2025
b513df7
Add ContextKind label rule, prove boundary typing
natsukagami Nov 12, 2025
256ddba
Update preservation
natsukagami Nov 12, 2025
46b7347
Broken projections
natsukagami Nov 14, 2025
b2208da
Make projections deep inside capture sets
natsukagami Nov 18, 2025
f04e476
Add projection rules
natsukagami Nov 18, 2025
dc8c425
Update lean to 4.25.1
natsukagami Nov 18, 2025
ed452b4
Renaming fixed
natsukagami Nov 18, 2025
2c18105
Update Substitution
natsukagami Nov 18, 2025
2100a41
Broken wellscoped
natsukagami Nov 18, 2025
7f706c7
Introduce projection as syntactic form, add subsetting rules
natsukagami Nov 19, 2025
ce1e920
Fix renaming
natsukagami Nov 19, 2025
078f7d2
What am i doing with the subset op
natsukagami Nov 19, 2025
e96ea6a
Something about projections
natsukagami Nov 20, 2025
66822bf
Proj rules need some help
natsukagami Nov 20, 2025
9b93a59
WIP depth
natsukagami Nov 24, 2025
57e4a35
?
natsukagami Nov 25, 2025
ca82f7a
Subset working???
natsukagami Nov 26, 2025
505721c
WIP link disjoint and subkind
natsukagami Nov 26, 2025
374edb4
Lots of things undone in classifier
natsukagami Nov 28, 2025
374beec
Update mathlib commit
natsukagami Dec 1, 2025
b30905d
Big rework
natsukagami Dec 2, 2025
f8b148f
Rules too strict? Should perhaps weaken
natsukagami Dec 2, 2025
c388cd0
Simplify classifiers, no more unions for now
natsukagami Dec 2, 2025
79b848a
Continue
natsukagami Dec 2, 2025
e592a63
Stuck...
natsukagami Dec 2, 2025
70db8c1
subcapt is going on
natsukagami Dec 3, 2025
0bc1cf5
Need to find more structure to continue proving. Maybe drop proj_r an…
natsukagami Dec 4, 2025
077166c
Abandon ship
natsukagami Dec 5, 2025
2eee99e
:(
natsukagami Dec 5, 2025
40529dc
Progress on Classifiers
natsukagami Dec 8, 2025
c14ac14
So many cases to handle...
natsukagami Dec 8, 2025
7f5b37f
Some progress
natsukagami Dec 9, 2025
449d305
We might need some relation between Subtract and Subkind to prove lin…
natsukagami Dec 9, 2025
f5664a0
Make stuff TODO so we can progress
natsukagami Dec 10, 2025
6a75133
WellScoped.subcapt green again
natsukagami Dec 10, 2025
9e5c632
Renaming is green again
natsukagami Dec 10, 2025
2693bb0
Everything seems fine before Subst
natsukagami Dec 11, 2025
47a7c1e
Progress is green again :D
natsukagami Dec 11, 2025
f259c58
Preservation also green :D
natsukagami Dec 11, 2025
9e2b93d
Some new terms and types
natsukagami Dec 11, 2025
bd818bc
Claude made these latex rules
natsukagami Dec 11, 2025
48d4494
WIP
natsukagami Dec 15, 2025
f40efbf
Add HasIntercept
natsukagami Dec 16, 2025
a790d92
Progress on intercept
natsukagami Dec 18, 2025
feab24e
Some WIP rework of subcapt
natsukagami Dec 18, 2025
cf12846
Subcapturing tuning
natsukagami Dec 19, 2025
03d7af9
WIP split WellScoped to ReachSet and WellScoped
natsukagami Dec 19, 2025
f899517
Move subkinding rules to subsetting
natsukagami Dec 22, 2025
70ee877
Slowly restoring sanity
natsukagami Dec 22, 2025
5142ddf
With intersect.assoc we should be able to prove proj_r
natsukagami Dec 22, 2025
c765399
WIP classifiers overhaul
natsukagami Dec 23, 2025
c660b6b
Refl proved
natsukagami Dec 24, 2025
0f4430a
Give up :(
natsukagami Dec 24, 2025
5bfb44d
Semantics subkinding proofs done! :D Merry Christmas
natsukagami Dec 24, 2025
e9f4f60
ReachSet is okay now
natsukagami Dec 25, 2025
dddf638
WellScoped should be set
natsukagami Dec 25, 2025
b594eb1
Progress is green again
natsukagami Dec 25, 2025
1748280
Some in progress failures, ReachSet is confusing me a little bit
natsukagami Dec 25, 2025
6373e89
Some cleanup of TightSubbound and allow Progress
natsukagami Jan 15, 2026
fb1edae
Undo TightSubbound
natsukagami Jan 19, 2026
98b27c2
Add reachsets p1
natsukagami Jan 26, 2026
7adf20e
Make all preliminaries pass
natsukagami Jan 27, 2026
eb20261
Update typing to use reachset, update renaming
natsukagami Jan 27, 2026
263ad12
Snapshot before dropping `reach` case
natsukagami Jan 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"permissions": {
"allow": [
"Bash(lake build:*)"
]
}
}
3 changes: 3 additions & 0 deletions Capless/Basic.lean
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,7 @@ theorem FinFun.comp_succ {f : FinFun n n'}: Fin.succ ∘ f = (FinFun.ext f) ∘
theorem FinFun.ext_zero {f : FinFun n n'} : f.ext 0 = 0 := by
simp [FinFun.ext]

theorem FinFun.ext_ext_one {f : FinFun n n'} : f.ext.ext 1 = 1 := by
rfl

end Capless
9 changes: 9 additions & 0 deletions Capless/CaptureBound.lean
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Capless.CaptureSet
import Capless.Type
import Capless.Subcapturing

namespace Capless

inductive CaptureBound : Context n m k -> CaptureSet n k -> CBound n k -> Prop where
| subcapt: Subcapt Γ C1 C2 -> CaptureBound Γ C1 (CBound.upper C2)
| subkind : CaptureKind Γ C K -> CaptureBound Γ C (CBound.kind K)
Loading