X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fapps_2%2Fmodels%2Fmodel.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fapps_2%2Fmodels%2Fmodel.ma;h=88703cfa2e5f8d4e4b7c94f34c85952d5864fc83;hb=5a0d5df90ad4096c4d7bdc50ce69cf8673ea6e57;hp=0000000000000000000000000000000000000000;hpb=f129bbbfda0e65a5f92ec086246f6e288376d4f9;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/apps_2/models/model.ma b/matita/matita/contribs/lambdadelta/apps_2/models/model.ma new file mode 100644 index 000000000..88703cfa2 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/apps_2/models/model.ma @@ -0,0 +1,39 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +include "ground_2/notation/relations/ringeq_3.ma". +include "apps_2/notation/models/at_3.ma". +include "apps_2/notation/models/wbrackets_4.ma". +include "basic_2/syntax/term.ma". + +(* MODEL ********************************************************************) + +record model: Type[1] ≝ { + dd: Type[0]; (* denotations domain *) + sq: relation2 dd dd; (* structural equivalence *) + sv: nat → dd; (* sort evaluation *) + ap: dd → dd → dd; (* application *) + ti: (nat → dd) → (nat → dd) → term → dd (* term interperpretation *) +}. + +interpretation "structural equivalence (model)" + 'RingEq M d1 d2 = (sq M d1 d2). + +interpretation "application (model)" + 'At M d1 d2 = (ap M d1 d2). + +interpretation "term interpretation (model)" + 'WBrackets M gv lv T = (ti M gv lv T). + +definition evaluation: model → Type[0] ≝ λM. nat → dd M.