Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Proost
Manage
Activity
Members
Labels
Plan
Issues
33
Issue boards
Milestones
Code
Merge requests
18
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package Registry
Model registry
Operate
Terraform modules
Analyze
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
loutr
Proost
Merge requests
!23
Resolve "Kernel errors"
Code
Review changes
Check out branch
Download
Patches
Plain diff
Merged
Resolve "Kernel errors"
19-kernel-errors-2
into
main
Overview
3
Commits
12
Pipelines
41
Changes
13
Merged
v-lafeychine
requested to merge
19-kernel-errors-2
into
main
2 years ago
Overview
3
Commits
12
Pipelines
41
Changes
2
Expand
Closes
#19 (closed)
Edited
2 years ago
by
v-lafeychine
👍
0
👎
0
Merge request reports
Compare
version 8
version 32
f1543ff9
2 years ago
version 31
906af919
2 years ago
version 30
8d380863
2 years ago
version 29
e4d6b0b5
2 years ago
version 28
60e1383b
2 years ago
version 27
7db3f764
2 years ago
version 26
85ec61a3
2 years ago
version 25
b8f94421
2 years ago
version 24
99bf1b8d
2 years ago
version 23
5d531fb7
2 years ago
version 22
ed0c9988
2 years ago
version 21
32630299
2 years ago
version 20
c59029fe
2 years ago
version 19
14cac5f6
2 years ago
version 18
77b5028f
2 years ago
version 17
068a1469
2 years ago
version 16
ba5034f1
2 years ago
version 15
cb750a55
2 years ago
version 14
0a30fcf4
2 years ago
version 13
ab96462c
2 years ago
version 12
d0029b28
2 years ago
version 11
a3e8e61f
2 years ago
version 10
ae08f967
2 years ago
version 9
73aa583f
2 years ago
version 8
7097e4f9
2 years ago
version 7
12323556
2 years ago
version 6
e4f34bca
2 years ago
version 5
d94aff5b
2 years ago
version 4
2f76206f
2 years ago
version 3
610ffd9a
2 years ago
version 2
3b24acf2
2 years ago
version 1
153fc81c
2 years ago
main (base)
and
version 9
latest version
f2ba8db0
12 commits,
2 years ago
version 32
f1543ff9
11 commits,
2 years ago
version 31
906af919
10 commits,
2 years ago
version 30
8d380863
9 commits,
2 years ago
version 29
e4d6b0b5
9 commits,
2 years ago
version 28
60e1383b
9 commits,
2 years ago
version 27
7db3f764
9 commits,
2 years ago
version 26
85ec61a3
9 commits,
2 years ago
version 25
b8f94421
9 commits,
2 years ago
version 24
99bf1b8d
9 commits,
2 years ago
version 23
5d531fb7
9 commits,
2 years ago
version 22
ed0c9988
9 commits,
2 years ago
version 21
32630299
9 commits,
2 years ago
version 20
c59029fe
9 commits,
2 years ago
version 19
14cac5f6
9 commits,
2 years ago
version 18
77b5028f
9 commits,
2 years ago
version 17
068a1469
9 commits,
2 years ago
version 16
ba5034f1
9 commits,
2 years ago
version 15
cb750a55
9 commits,
2 years ago
version 14
0a30fcf4
9 commits,
2 years ago
version 13
ab96462c
9 commits,
2 years ago
version 12
d0029b28
8 commits,
2 years ago
version 11
a3e8e61f
8 commits,
2 years ago
version 10
ae08f967
7 commits,
2 years ago
version 9
73aa583f
6 commits,
2 years ago
version 8
7097e4f9
5 commits,
2 years ago
version 7
12323556
5 commits,
2 years ago
version 6
e4f34bca
5 commits,
2 years ago
version 5
d94aff5b
4 commits,
2 years ago
version 4
2f76206f
3 commits,
2 years ago
version 3
610ffd9a
3 commits,
2 years ago
version 2
3b24acf2
2 commits,
2 years ago
version 1
153fc81c
1 commit,
2 years ago
Show latest version
2 files
+
68
−
18
Inline
Compare changes
Side-by-side
Inline
Show whitespace changes
Show one file at a time
Files
2
Search (e.g. *.vue) (Ctrl+P)
kernel/src/term.rs
+
10
−
3
Options
@@ -67,8 +67,14 @@ impl Term {
Var
(
i
)
if
*
i
>
depth
.into
()
=>
Var
(
*
i
-
1
.into
()),
App
(
l
,
r
)
=>
App
(
box
l
.substitute
(
rhs
,
depth
),
box
r
.substitute
(
rhs
,
depth
)),
Abs
(
t
,
term
)
=>
Abs
(
t
.clone
(),
box
term
.substitute
(
rhs
,
depth
+
1
)),
Prod
(
t
,
term
)
=>
Prod
(
t
.clone
(),
box
term
.substitute
(
rhs
,
depth
+
1
)),
Abs
(
t
,
term
)
=>
Abs
(
box
t
.substitute
(
rhs
,
depth
),
box
term
.substitute
(
rhs
,
depth
+
1
),
),
Prod
(
t
,
term
)
=>
Prod
(
box
t
.substitute
(
rhs
,
depth
),
box
term
.substitute
(
rhs
,
depth
+
1
),
),
_
=>
self
.clone
(),
}
}
@@ -88,6 +94,7 @@ impl Term {
}
/// Returns the weak-head normal form of a term in a given environment.
/// TODO make whnf more lax, it shouldn't reduce applications in which the head is a neutral term.
pub
fn
whnf
(
&
self
,
env
:
&
Environment
)
->
Term
{
match
self
{
App
(
box
t
,
t2
)
=>
match
t
.whnf
(
env
)
{
@@ -297,7 +304,7 @@ mod tests {
#[test]
fn
shift_prod
()
{
let
t1
=
Prod
(
box
Var
(
1
.into
())
,
box
Var
(
1
.into
()));
let
t1
=
Prod
(
box
Prop
,
box
Var
(
1
.into
()));
let
t2
=
App
(
box
Abs
(
box
Prop
,
box
t1
.clone
()),
box
Prop
);
assert_eq!
(
t2
.beta_reduction
(
&
Environment
::
new
()),
t1
)
Loading