21 lines
532 B
Lean4
21 lines
532 B
Lean4
import Mathlib.Tactic.TypeStar
|
||
|
||
/-!
|
||
|
||
Interpretation to a semantic domain.
|
||
|
||
This file serves to introduce the double-angle-bracket "denotation"
|
||
notation by prodiving a class instance `Interp`, whose single
|
||
method `interp` is what the double brackets map to. -/
|
||
|
||
namespace Spa
|
||
|
||
/-- A type `α` that implements this class has denotation / meaning
|
||
in the semantic domain `dom`. -/
|
||
class Interp (α : Type*) (dom : outParam Type*) where
|
||
interp : α → dom
|
||
|
||
notation:max (priority := high) "⟦" v "⟧" => Interp.interp v
|
||
|
||
end Spa
|