Results 1 
8 of
8
Dynamic Typing in a Statically Typed Language
"... Statically typed programming languages allow earlier error checking, better enforcement of disciplined programming styles, and generation of more e cient object code than languages where all type consistency checks are performed at run time. However, even in statically typed languages, there is ofte ..."
Abstract

Cited by 174 (4 self)
 Add to MetaCart
Statically typed programming languages allow earlier error checking, better enforcement of disciplined programming styles, and generation of more e cient object code than languages where all type consistency checks are performed at run time. However, even in statically typed languages, there is often the need to deal with data whose type cannot be determined at compile time. To handle such situations safely, we propose to add a type Dynamic whose values are pairs of a value v andatype tag T where v has the type denoted by T. Instances of Dynamic are built with an explicit tagging construct and inspected with a type safe typecase construct. This paper explores the syntax, operational semantics, and denotational semantics of a simple language including the type Dynamic. Wegive examples of how dynamically typed values can be used in programming. Then we discuss an operational semantics for our language and obtain a soundness theorem. We present two formulations of the denotational semantics of this language and relate them to the operational semantics. Finally,we consider the implications of polymorphism and some implementation issues.
Unifying Math Ontologies: A tale of two standards (full paper
, 2009
"... Abstract. One of the fundamental and seemingly simple aims of mathematical knowledge management (MKM) is to develop and standardize formats that allow to “represent the meaning of the objects of mathematics”. The open formats OpenMath and MathML address this, but differ subtly in syntax, rigor, an ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
(Show Context)
Abstract. One of the fundamental and seemingly simple aims of mathematical knowledge management (MKM) is to develop and standardize formats that allow to “represent the meaning of the objects of mathematics”. The open formats OpenMath and MathML address this, but differ subtly in syntax, rigor, and structural viewpoints (notably over calculus). To avoid fragmentation and smooth out interoperability obstacles, effort is under way to align them into a joint format OpenMath/MathML 3. We illustrate the issues that come up in such an alignment by looking at three main areas: bound variables and conditions, calculus (which relates to the previous) and “lifted ” nary operators. Whenever anyone says “you know what I mean”, you can be pretty sure that he does not know what he means, for if he did, he would tell you. — H. Davenport (1907–1969) 1
Polishing Up the TaitMartinLöf Proof of the ChurchRosser Theorem
, 1995
"... Introduction The TaitMartinLof proof is the best known and simplest proof of confluence (the ChurchRosser theorem) for various lambda calculi. It is explained in detail, for example, in [Bar84, HS86, Rev88]. The desire to clarify this proof has inspired work on concrete representation of bindi ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
Introduction The TaitMartinLof proof is the best known and simplest proof of confluence (the ChurchRosser theorem) for various lambda calculi. It is explained in detail, for example, in [Bar84, HS86, Rev88]. The desire to clarify this proof has inspired work on concrete representation of binding [dB72, Coq91]. Perhaps the best modern version is given in [Tak95]. Formal proofs are reported in [Hue94, MP93, Pfe92, Sha88] 1 . In this note I outline the innovation given in [Tak95] (and formalized by McKinna [MP93]), and present a further improvement which I believe has not appeared in the literature before. 1.1 Preliminary Definitions Let Rel2 be the class of binary relations, and R; T 2 Rel2 ; we write aRb for (a; b) 2 R . For R 2 Rel2 the transitive reflexive closure of R , wri
unknown title
"... This version is made available in accordance with publisher policies. Please cite only the published version using the reference above. See ..."
Abstract
 Add to MetaCart
(Show Context)
This version is made available in accordance with publisher policies. Please cite only the published version using the reference above. See
Reasoning with Inductively Defined Relations in the HOL Theorem Prover
, 1992
"... : Inductively defined relations are among the basic mathematical tools of computer science. Examples include evaluation and computation relations in structural operational semantics, labelled transition relations in process algebra semantics, inductivelydefined typing judgements, and proof systems ..."
Abstract
 Add to MetaCart
: Inductively defined relations are among the basic mathematical tools of computer science. Examples include evaluation and computation relations in structural operational semantics, labelled transition relations in process algebra semantics, inductivelydefined typing judgements, and proof systems in general. This paper describes a set of HOL theoremproving tools for reasoning about such inductively defined relations. We also describe a suite of worked examples using these tools. First printed: August 1992 Parts of this report have previously appeared as: T. Melham, `A Package for Inductive Relation Definitions in HOL', in Proceedings of the 1991 International Workshop on the HOL Theorem Proving System and its Applications, Davis, August 1991, edited by M. Archer, J. J. Joyce, K. N. Levitt, and P. J. Windley (IEEE Computer Society Press, 1992), pp. 350357. Contents Introduction 4 1 Inductive definitions 5 1.1 Rule induction : : : : : : : : : : : : : : : : : : : : : : : : :...
Re ning the Barendregt Cube with Parameters
, 2001
"... The Low Level approa
h of fun
tions Histori
ally, fun
tions have long been treated as a kind of metaobje
ts. Fun
tion values have always been important, but abstra
t fun
tions have not been re
ognised in their own right until the third of the 20th
entury. In the low level approa
h or operationa ..."
Abstract
 Add to MetaCart
The Low Level approa
h of fun
tions Histori
ally, fun
tions have long been treated as a kind of metaobje
ts. Fun
tion values have always been important, but abstra
t fun
tions have not been re
ognised in their own right until the third of the 20th
entury. In the low level approa
h or operational view on fun
tions, there are no fun tions as su
h, but only fun
tion values. E.g., the sinefun
tion, is always expressed together with a value: sin(), sin(x) and properties like: sin(2x) = 2 sin(x)
os(x). It has long been usual to
all f(x)and not fthe fun
tion and this is still the ase in many introdu
tory mathemati
s
ourses. FLOPS'01, 7{9 Mar
h 2001,Waseda, Japan 1 Kamareddine, Laan and Nederpelt The revolution of treating fun
tions as rst
lass
itizens In the nowadays a
epted view on fun
tions, they are ` rst
lass
itizens'. Abstra
tion and appli
ation form the basis of the 
al
ulus and type theory. This is rigid and does not represent the development of logi
in 20th
entury. Frege and Russell's
on
eptions of fun
tional abstra
tion, instantiation and appli ation do not t well with the 
al
ulus approa
h.
unknown title
, 2001
"... Item Notation/Lambda Cal
ulus a la de Bruijn For those used to
lassi
al notation, I translates to item notation: I(x) = x; I(x:B) = [x℄I(B); I(AB) = (I(B))I(A) For example, I((x:(y:xy))z) = (z)[x℄[y℄(y)x. The items are (z), [x℄, [y℄ and (y). The appli
ator wagon (z) and abstra
tor wagon [x ℄ ..."
Abstract
 Add to MetaCart
(Show Context)
Item Notation/Lambda Cal
ulus a la de Bruijn For those used to
lassi
al notation, I translates to item notation: I(x) = x; I(x:B) = [x℄I(B); I(AB) = (I(B))I(A) For example, I((x:(y:xy))z) = (z)[x℄[y℄(y)x. The items are (z), [x℄, [y℄ and (y). The appli
ator wagon (z) and abstra
tor wagon [x ℄ o
ur NEXT to ea
h other. In
lassi
al notation the rule is (x:A)B! A[x: = B℄. In item notation, the rule is: (B)[x℄A!