1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "ground_2/notation/relations/ringeq_3.ma".
16 include "apps_2/notation/models/at_3.ma".
17 include "apps_2/notation/models/wbrackets_4.ma".
18 include "static_2/syntax/term.ma".
20 (* MODEL ********************************************************************)
22 record model: Type[1] ≝ {
23 (* Note: denotations domain *)
25 (* Note: structural equivalence *)
27 (* Note: sort evaluation *)
29 (* Note: application *)
31 (* Note: term interperpretation *)
32 ti: (nat → dd) → (nat → dd) → term → dd
35 interpretation "structural equivalence (model)"
36 'RingEq M d1 d2 = (sq M d1 d2).
38 interpretation "application (model)"
39 'At M d1 d2 = (ap M d1 d2).
41 interpretation "term interpretation (model)"
42 'WBrackets M gv lv T = (ti M gv lv T).
44 definition evaluation: model → Type[0] ≝ λM. nat → dd M.