├── .gitignore ├── LICENSE ├── Lean4Lean.lean ├── Lean4Lean ├── Declaration.lean ├── Environment.lean ├── Environment │ └── Basic.lean ├── EquivManager.lean ├── Experimental │ ├── ParallelReduction.lean │ ├── Stratified.lean │ ├── StratifiedUntyped.lean │ └── Stronger.lean ├── Expr.lean ├── ForEachExprV.lean ├── Inductive │ ├── Add.lean │ └── Reduce.lean ├── Instantiate.lean ├── Level.lean ├── List.lean ├── LocalContext.lean ├── Primitive.lean ├── PtrEq.lean ├── Quot.lean ├── Std │ ├── Basic.lean │ ├── Control.lean │ ├── HashMap.lean │ ├── NodupKeys.lean │ ├── PersistentHashMap.lean │ ├── SMap.lean │ ├── ToExpr.lean │ └── Variable!.lean ├── Stream.lean ├── Theory.lean ├── Theory │ ├── Inductive.lean │ ├── Meta.lean │ ├── Quot.lean │ ├── Typing │ │ ├── Basic.lean │ │ ├── Env.lean │ │ ├── EnvLemmas.lean │ │ ├── InductiveLemmas.lean │ │ ├── Lemmas.lean │ │ ├── Meta.lean │ │ ├── NormalEq.lean │ │ ├── QuotLemmas.lean │ │ ├── Strong.lean │ │ └── UniqueTyping.lean │ ├── VDecl.lean │ ├── VEnv.lean │ ├── VExpr.lean │ └── VLevel.lean ├── TypeChecker.lean ├── Verify.lean └── Verify │ ├── Axioms.lean │ ├── Environment │ ├── Basic.lean │ └── Lemmas.lean │ ├── EquivManager.lean │ ├── Expr.lean │ ├── Level.lean │ ├── LocalContext.lean │ ├── NameGenerator.lean │ ├── TypeChecker.lean │ ├── TypeChecker │ ├── Basic.lean │ ├── InferType.lean │ ├── IsDefEq.lean │ ├── Reduce.lean │ └── WHNF.lean │ ├── Typing │ ├── ConditionallyTyped.lean │ ├── Expr.lean │ └── Lemmas.lean │ └── VLCtx.lean ├── Main.lean ├── README.md ├── bugs-found.md ├── divergences.md ├── lake-manifest.json ├── lakefile.toml └── lean-toolchain /.gitignore: -------------------------------------------------------------------------------- 1 | /.lake 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/LICENSE -------------------------------------------------------------------------------- /Lean4Lean.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean.lean -------------------------------------------------------------------------------- /Lean4Lean/Declaration.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Declaration.lean -------------------------------------------------------------------------------- /Lean4Lean/Environment.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Environment.lean -------------------------------------------------------------------------------- /Lean4Lean/Environment/Basic.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Environment/Basic.lean -------------------------------------------------------------------------------- /Lean4Lean/EquivManager.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/EquivManager.lean -------------------------------------------------------------------------------- /Lean4Lean/Experimental/ParallelReduction.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Experimental/ParallelReduction.lean -------------------------------------------------------------------------------- /Lean4Lean/Experimental/Stratified.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Experimental/Stratified.lean -------------------------------------------------------------------------------- /Lean4Lean/Experimental/StratifiedUntyped.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Experimental/StratifiedUntyped.lean -------------------------------------------------------------------------------- /Lean4Lean/Experimental/Stronger.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Experimental/Stronger.lean -------------------------------------------------------------------------------- /Lean4Lean/Expr.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Expr.lean -------------------------------------------------------------------------------- /Lean4Lean/ForEachExprV.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/ForEachExprV.lean -------------------------------------------------------------------------------- /Lean4Lean/Inductive/Add.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Inductive/Add.lean -------------------------------------------------------------------------------- /Lean4Lean/Inductive/Reduce.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Inductive/Reduce.lean -------------------------------------------------------------------------------- /Lean4Lean/Instantiate.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Instantiate.lean -------------------------------------------------------------------------------- /Lean4Lean/Level.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Level.lean -------------------------------------------------------------------------------- /Lean4Lean/List.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/List.lean -------------------------------------------------------------------------------- /Lean4Lean/LocalContext.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/LocalContext.lean -------------------------------------------------------------------------------- /Lean4Lean/Primitive.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Primitive.lean -------------------------------------------------------------------------------- /Lean4Lean/PtrEq.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/PtrEq.lean -------------------------------------------------------------------------------- /Lean4Lean/Quot.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Quot.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/Basic.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/Basic.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/Control.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/Control.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/HashMap.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/HashMap.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/NodupKeys.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/NodupKeys.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/PersistentHashMap.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/PersistentHashMap.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/SMap.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/SMap.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/ToExpr.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/ToExpr.lean -------------------------------------------------------------------------------- /Lean4Lean/Std/Variable!.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Std/Variable!.lean -------------------------------------------------------------------------------- /Lean4Lean/Stream.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Stream.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Inductive.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Inductive.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Meta.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Meta.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Quot.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Quot.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/Basic.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/Basic.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/Env.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/Env.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/EnvLemmas.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/EnvLemmas.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/InductiveLemmas.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/InductiveLemmas.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/Lemmas.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/Lemmas.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/Meta.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/Meta.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/NormalEq.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/NormalEq.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/QuotLemmas.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/QuotLemmas.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/Strong.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/Strong.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/Typing/UniqueTyping.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/Typing/UniqueTyping.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/VDecl.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/VDecl.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/VEnv.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/VEnv.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/VExpr.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/VExpr.lean -------------------------------------------------------------------------------- /Lean4Lean/Theory/VLevel.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Theory/VLevel.lean -------------------------------------------------------------------------------- /Lean4Lean/TypeChecker.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/TypeChecker.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Axioms.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Axioms.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Environment/Basic.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Environment/Basic.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Environment/Lemmas.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Environment/Lemmas.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/EquivManager.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/EquivManager.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Expr.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Expr.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Level.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Level.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/LocalContext.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/LocalContext.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/NameGenerator.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/NameGenerator.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/TypeChecker.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/TypeChecker.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/TypeChecker/Basic.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/TypeChecker/Basic.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/TypeChecker/InferType.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/TypeChecker/InferType.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/TypeChecker/IsDefEq.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/TypeChecker/IsDefEq.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/TypeChecker/Reduce.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/TypeChecker/Reduce.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/TypeChecker/WHNF.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/TypeChecker/WHNF.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Typing/ConditionallyTyped.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Typing/ConditionallyTyped.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Typing/Expr.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Typing/Expr.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/Typing/Lemmas.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/Typing/Lemmas.lean -------------------------------------------------------------------------------- /Lean4Lean/Verify/VLCtx.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Lean4Lean/Verify/VLCtx.lean -------------------------------------------------------------------------------- /Main.lean: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/Main.lean -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/README.md -------------------------------------------------------------------------------- /bugs-found.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/bugs-found.md -------------------------------------------------------------------------------- /divergences.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/divergences.md -------------------------------------------------------------------------------- /lake-manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/lake-manifest.json -------------------------------------------------------------------------------- /lakefile.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/digama0/lean4lean/HEAD/lakefile.toml -------------------------------------------------------------------------------- /lean-toolchain: -------------------------------------------------------------------------------- 1 | leanprover/lean4:v4.23.0 2 | --------------------------------------------------------------------------------