Skip to content

Commit 803ccb0

Browse files
committed
Move lambda prepending functions (agda#1116)
1 parent 53e45bb commit 803ccb0

File tree

3 files changed

+14
-10
lines changed

3 files changed

+14
-10
lines changed

src/Reflection/AST/DeBruijn.agda

+13-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ module Reflection.AST.DeBruijn where
1010

1111
open import Data.Bool.Base using (Bool; true; false; _∨_; if_then_else_)
1212
open import Data.Nat.Base as Nat using (ℕ; zero; suc; _+_; _∸_; _<ᵇ_; _≡ᵇ_)
13-
open import Data.List.Base using (List; []; _∷_; _++_)
13+
open import Data.List.Base using (List; []; _∷_; _++_; foldr; reverse; map)
14+
open import Data.Product using (_×_; _,_)
15+
open import Data.String as String using (String)
1416
open import Data.Maybe.Base using (Maybe; nothing; just)
1517
import Data.Maybe.Effectful as Maybe
1618
import Function.Identity.Effectful as Identity
@@ -53,6 +55,16 @@ module _ where
5355
weakenClauses : (by : ℕ) Clauses Clauses
5456
weakenClauses = weakenFrom′ traverseClauses 0
5557

58+
-- Apply Weakening to substitute under lambdas
59+
60+
prependLams : List (String × Visibility) Term Term
61+
prependLams xs t = foldr (λ {(s , v) t lam v (abs s t)}) t (reverse xs)
62+
63+
prependHLams : List String Term Term
64+
prependHLams vs = prependLams (map (_, hidden) vs)
65+
66+
prependVLams : List String Term Term
67+
prependVLams vs = prependLams (map (_, visible) vs)
5668

5769
------------------------------------------------------------------------
5870
-- η-expansion

src/Reflection/AST/Term.agda

-9
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,6 @@ stripPis : Term → List (String × Arg Type) × Term
9696
stripPis (Π[ s ∶ t ] x) = map₁ ((s , t) ∷_) (stripPis x)
9797
stripPis x = [] , x
9898

99-
prependLams : List (String × Visibility) Term Term
100-
prependLams xs t = foldr (λ {(s , v) t lam v (abs s t)}) t (reverse xs)
101-
102-
prependHLams : List String Term Term
103-
prependHLams vs = prependLams (List.map (_, hidden) vs)
104-
105-
prependVLams : List String Term Term
106-
prependVLams vs = prependLams (List.map (_, visible) vs)
107-
10899
------------------------------------------------------------------------
109100
-- Decidable equality
110101

src/Tactic/RingSolver.agda

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ open import Reflection.AST.Argument
2727
open import Reflection.AST.Term as Term
2828
open import Reflection.AST.AlphaEquality
2929
open import Reflection.AST.Name as Name
30+
open import Reflection.AST.DeBruijn using (prependVLams; prependHLams)
3031
open import Reflection.TCM.Syntax
3132
open import Data.Nat.Reflection
3233
open import Data.List.Reflection

0 commit comments

Comments
 (0)