The introduction of Linear Logic extends the Curry-Howard Isomorphism to intensional aspects of the typed functional programming. In particular, every formula of Linear Logic tells whether the term it is a type for, can be either erased/duplicated or not, during a computation. So, Linear Logic can be seen as a model of a computational environment with an explicit control about the management of resources.This paper introduces a typed functional language
! and a categorical model for it.The terms of
! encode a version of natural deduction for Intuitionistic Linear Logic such that linear and non linear assumptions are managed multiplicatively and additively, respectively. Correspondingly, the terms of
! are built out of two disjoint sets of variables. Moreover, the
-abstractions of
! bind variables and patterns. The use of two different kinds of variables and the patterns allow a very compact definition of the one-step operational semantics of
!, unlike all other extensions of Curry-Howard Isomorphism to Intuitionistic Linear Logic. The language
! is Church-Rosser and enjoys both Strong Normalizability and Subject Reduction.The categorical model induces operational equivalences like, for example, a set of extensional equivalences.The paper presents also an untyped version of
! and a type assignment for it, using formulas of Linear Logic as types. The type assignment inherits from
! all the good computational properties and enjoys also the Principal-Type Property.