C Definizioni degli elementi di contenuto

Descrizione sommaria: Linguaggio di marcatura matematica (MathML) Versione 2.0
Precedente: B Grammatica di convalida della marcatura di contenuto
Successivo: D Dizionario degli operatori (Non normativa)
 
C Definizioni degli elementi di contenuto
C.1 A proposito degli elementi della marcatura di contenuto
   C.1.1 Le definizioni predefinite
   C.1.2 La struttura di una MMLdefinition.
C.2 Definizioni degli elementi di contenuto del MathML
   C.2.1 Elementi foglia
   C.2.2 Elemento di contenuto fondamentale
   C.2.3 Aritmetica, algebra e logica
   C.2.4 Relazioni
   C.2.5 Analisi matematica
   C.2.6 Teoria degli insiemi
   C.2.7 Successioni e serie
   C.2.8 Trigonometria
   C.2.9 Statistica
   C.2.10 Algebra lineare

C.1 A proposito degli elementi della marcatura di contenuto

Il ruolo primario degli elementi di contenuto del MathML è fornire un meccanismo per registrare il fatto che una particolare struttura notazionale ha un particolare significato matematico. A questo fine, ogni elemento di contenuto deve avere una definizione matematica associata con esso in qualche forma. Il fine di questa appendice è fornire definizioni predefinite. (In seguito nel documento è fornito un indice alle definizioni.) L'autore può adattare la notazione alle sue particolari necessità usando "definitionURL" per sovrascrivere queste definizioni predefinite per gli elementi di contenuto selezionati.

Le definizioni matematiche non sono ristrette a nessun formato. Ci sono varie ragioni per permettere questa flessibilità, quasi tutte derivate dal fatto che se è estremamente importante permettere agli autori di fare uso di definizioni esistenti dalla letteratura matematica.

  1. Non c'è una notazione adatta di uso comune. Per esempio, le librerie matematiche anche dei più estensivi sistemi di calcolo matematico in uso oggi catturano solo una piccola frazione della letteratura matematica e comunque non tutta la matematica è computazionale.
  2. Nella maggior parte dei casi, la traduzione di una definizione matematica in un nuovo linguaggio denotazionale è un uso inappropriato dell'energia e del tempo di un autore.
  3. Il compito di progettare un nuovo linguaggio leggibile da una macchina adatto a registrare descrizioni semantiche è un compito oneroso che va sostanzialmente oltre l'ambito di questa particolare direttiva. Esso inoltre si sovrappone sostanzialmente con gruppi di lavoro come il Consorzio OpenMath. (Si vedano anche: l'Iniziativa Nordamericana OpenMath e il Consorzio Europeo OpenMath.)

I problemi chiave per fini sia di archiviazione che di calcolo sono che ci sia una definizione e che l'autore abbia un meccanismo per specificare quale definizione deve essere usata per una data istanza di un costrutto notazionale. Questo requisito denotazionale è importante senza tener conto dell'esistenza di un'implementazione di un particolare concetto o oggetto in un sistema di calcolo matematico. La definizione può essere vaga come sostenere che, diciamo F, è una funzione sconosciuta, ma derivabile dai numeri reali ai numeri reali, o complicata come richiedere che F sia una funzione o un'operazione elaborata definita in qualche documento di ricerca recente (o classico). La cosa importante è che il lettore abbia sempre un modo per determinare come è usata la notazione.

C.1.1 Le definizioni predefinite

La decisione di un autore di usare elementi di contenuto è una decisione di usare oggetti definiti. Per rendere questo compito meno oneroso, sono fornite definizioni predefinite. In questo modo, un autore ha bisogno di fornire definizioni esplicite solo quando il loro uso è diverso dall'uso predefinito.

Quando è possibile le definizioni sono state scelte per riflettere l'uso comune affinché la maggior parte delle comunicazioni matematiche ben scritte (in ogni formato) tragga un sostanziale beneficio dall'uso dell'autore di termini ampiamente usati e compresi.

Le definizioni sono sovrascritte in un'istanza particolare facendo uso dell'attributo definitionURL. Il formato del contenuto di tale URL non è specificato. Può anche essere il caso che l'attributo definitionURL sia un nome inventato dall'autore, in questo caso serve ad avvisare il lettore (e i sistemi di calcolo) che l'autore sta usando la sua definizione. Può essere l'URL di un documento matematico il cui scopo sia definire un nuovo operatore, o anche un riferimento a un testo tradizionale nel quale è definito il costrutto. Se l'operatore matematico dell'autore corrisponde esattamente ad un operatore in un particolare sistema di calcolo, una definizione appropriata potrebbe essere in termini di un elemento semantics del MathML che stabilisce una corrispondenza tra due codifiche. Qualunque formato sia scelto, l'unico requisito è che sia indicato un qualche tipo di definizione.

Questo resto di questa appendice fornisce descrizioni dettagliate della semantica predefinita associata con ogni elemento di contenuto del MathML. Poiché questo è esattamente il ruolo inteso per le codifiche in fase di sviluppo dal Consorzio OpenMath e uno dei nostri obiettivi è promuovere la cooperazione internazionale in questi lavori di standardizzazione abbiamo presentato le definizioni predefinite in un formato modellato sui dizionari di contenuto di OpenMath. Sebbene i dettagli reali siano piuttosto diversi dalle specifiche OpenMath, i principi sottostanti sono gli stessi.

C.1.2 La struttura di una MMLdefinition.

Ogni elemento MathML è descritto usando un formato XML. L'elemento principale è MMLdefinition. I sottoelementi identificano le varie parti della descrizione e comprendono:

name
PCDATA che fornisce il nome dell'elemento MathML.
description
Una descrizione CDATA dell'oggetto che un elemento rappresenta. Questo spesso comprenderà riferimenti incrociati a testi o documenti più tradizionali o a documenti esistenti sul Web.
classification
Ogni elemento MathML deve essere classificato secondo il suo ruolo matematico.
punctuation
Alcuni elementi esistono semplicemente come aiuto all'analisi. Per esempio l'elemento sep è usato per separare il CDATA che definisce un numero razionale in due parti in un modo che sia elaborato facilmente da un'applicazione XML. Questi oggetti sono chiamati punteggiatura.
descriptor
Alcuni elementi esistono semplicemente per modificare le proprietà di un elemento o di un oggetto matematico esistente. Per esempio il costrutto declare è usato per reimpostare i valori predefiniti degli attributi, o per associare un nome ad una specifica istanza di un oggetto. Questi tipi di elementi sono chiamati descrittori e il tipo di oggetto risultante è lo stesso dell'elemento modificato, ma con i nuovi valori degli attributi. Non è prevista una firma per i descrittori.
constructor
Gli oggetti rimanenti che `contengono' sottoelementi sono tutti i costruttori di oggetti di un tipo o dell'altro. Essi combinano i sottoelementi in un oggetto matematico composto come una costante, un insieme, una lista o l'applicazione di una funzione. Per esempio, l'elemento lambda costruisce una definizione di funzione da una lista di variabili e un'espressione, mentre l'elemento apply costruisce un'applicazione di funzione. Con applicazione di funzione intendiamo il risultato di applicare il primo elemento dell'elemento apply (la funzione) agli zero o più elementi rimanenti (gli argomenti). Un'applicazione di funzione rappresenta un oggetto nel codominio della funzione. Per ogni data combinazione di tipo e ordine di figli XML, la firma di un costruttore indica il tipo (e a volte il sottotipo) dell'oggetto risultante.
function (operator)
Le tradizionali funzioni e gli operatori matematici sono rappresentati in MathML da elementi XML vuoti come plus e sin. Queste definizioni di funzioni sono parametrizzate dai valori dei loro attributi XML (per esempio, possono essere di tipo vettore) e sono usate o come sono, per esempio quando si discutono le proprietà di una particolare funzione o operatore, o sono applicate ad argomenti usando l'elemento apply. L'ultimo caso è detto applicazione di funzioni. Le funzioni sono classificate secondo come sono usate. Per esempio l'elemento vuoto sin rappresenta la funzione matematica unaria seno. L'elemento plus è un operatore n-ario. La firma di una funzione (si veda sotto) descrive come deve essere usata una funzione matematica all'interno di un elemento apply. Ogni combinazione di tipi di argomenti di funzione usata all'interno di un elemento apply dà origine ad un elemento apply di un dato tipo.
MMLattribute
Alcuni degli attributi XML di un elemento di contenuto del MathML hanno un impatto diretto sulla semantica matematica dell'oggetto. Per esempio l'attributo type dell'elemento cn è usato per determinare che tipo di costante (intera, reale, ecc.) si sta costruendo. Solo quegli attributi che influenzano le proprietà matematiche di un oggetto sono elencati qui e tipicamente questi appaiono anche esplicitamente nella firma.
signature
La firma (signature) è una rappresentazione sistematica che associa i tipi delle diverse possibili combinazioni di attributi e argomenti di funzione al tipo dell'oggetto matematico costruito. Le combinazioni possibili di tipi di parametri e argomenti (il lato sinistro) risultano ciascuna in un oggetto di qualche tipo (il lato destro). In effetti, descrive come risolvere la sovrascrittura degli operatori. Per i costruttori, il lato sinistro della firma descrive i tipi di elementi figli e il lato destro descrive il tipo di oggetto costruito. Per le funzioni, il lato sinistro della firma indica i tipi di parametri e argomenti attesi quando la funzione è applicata, o usata per costruire una relazione, e il lato destro rappresenta il tipo matematico dell'oggetto costruito dall'elemento apply. I modificatori modificano gli attributi di un oggetto esistente. Per esempio, un simbolo può diventare un simbolo di tipo vettore. La firma deve poter registrare valori di attributi e tipi di argomenti specifici a sinistra, e tipi parametrizzati a destra. La sintassi usata per le firme è della forma generale:
[<nome dell'attributo>=<valoreattributo>]( <lista dei tipi degli argomenti> )
--> <tipo matematico del risultato>(<sottotipo matematico>)
Gli attributi MML, se presenti, appaiono nella forma <nome>=<valore>. Sono separati notazionalmente dal resto degli argomenti da parentesi quadre. I valoro possibili sono presi di solito da una lista enumerata, e la firma è di solito influenzata dalla selezione di un possibile valore. Per gli argomenti reali delle funzioni e i parametri con nome a sinistra, l'attenzione è sui tipi matematici coinvolti. I tipi degli argomenti della funzione sono presentati in una sintassi simile a quella usata per una DTD, con un'eccezione principale. I tipi dei parametri con nome appaiono nella firma come <nomeelemento>=<tipo> in un modo analogo a quello usato per i valori degli attributi. Per esempio, se l'argomento ha un nome (es. bvar) allora è rappresentato nella firma da un'equazione come in:
[<nome attributo>=<valoreattributo>]( bvar=simbolo,<lista argomenti> ) -->
<tipo matematico del risultato>(<sottotipo matematico>)
Nel MathML non avviene mai nessuna valutazione matematica. Ogni elemento di contenuto MathML o si riferisce ad un oggetto definito come una funzione matematica o combina tali oggetti in qualche modo per costruire un nuovo oggetto. Ai fini della segnatura, l'oggetto costruito rappresenta un oggetto di un certo tipo, eventualmente parametrizzato. Per esempio il risultato di applicare plus agli argomenti è un'espressione che rappresenta una somma. Il tipo di espressione risultante dipende dai tipi degli operandi e dai valori degli attributi MathML.
example
Gli esempi dell'uso di questo oggetto nel MathML sono compresi in questi elementi.
property
Questo elemento descrive le proprietà matematiche di tali oggetti. Per semplici associazioni di valori con specifiche istanze di un oggetto, il primo figlio è un'istanza dell'oggetto definito. Il secondo è un elemento value (valore) o approx (approssimazione) che contiene una descrizione MathML di questo particolare valore. Condizioni più elaborate sull'oggetto sono espresse usando la sintassi MathML.
comment
Questi elementi contengono solo PCDATA e possono occorrere come figli della MMLDefinition in ogni punto.

C.2 Definizioni degli elementi di contenuto del MathML

C.2.1 Elementi foglia

C.2.1.1 cn

<MMLdefinition>
<name> cn </name>
<description> 
Una costante numerica. Il tipo matematico di numero è
dato come attributo. Il tipo predefinito è "real".
Numeri razionali, complessi o reali richiedono due
parti per una completa specificazione. Le parti di un
tale numero sono separate da un elemento "sep" vuoto. Ci
sono alcune costanti predefinite che comprendono:
      &pi; &Exponential; &ComplexI &true; &false; &NaN;
le proprietà di alcune delle quali sono delineate in
seguito. La costante &NaN; è il "Not a Number" (non un
numero) dell'IEEE, come definita nello standardi IEEE 854
per l'aritmetica in virgola mobile.
</description>
<functorclass> constant </functorclass>
<MMLattribute>
    <name> type </name>
    <value> integer | rational | complex-cartesian 
             | complex-polar | real 
    </value>
    <default> real </default>
</MMLattribute>
<MMLattribute>
    <name> base </name>
    <value> positive_integer </value>
    <default> 10 </default>
</MMLattribute>
<signature> [type=integer](numstring) -> constant(integer) </signature>
<signature> [base=basevalue](numstring) -> constant(integer) </signature> 
<signature> [type=rational](numstring,numstring) -> constant(rational) </signature>
<signature> [type=complex-cartesian](numstring,numstring) -> constant(complex) </signature>
<signature> [type=rational](numstring,numstring) -> constant(rational) </signature>
<signature> [type=real](&pi;) -> constant(real) </signature>
<signature> [definition](numstring,numstring) -> constant(userdefined) </signature>
<signature> (&gamma;) -> constant</signature>
<example> <cn> 245 </cn> </example>
<example> <cn type="integer"> 245 </cn> </example>
<example> <cn type="integer" base="16"> A </cn></example>
<example> <cn type="rational"> 245 <sep> 351 </cn> </example>
<example> <cn type="complex-cartesian"> 1 <sep/> 2 </cn> </example>
<example> <cn> 245 </cn> </example>
<property> <approx>
  <cn> &pi; </cn>  
  <cn> 3.141592654 </cn>
</approx></property>
<property> <approx>
  <cn> &gamma; </cn> 
  <cn> .5772156649 </cn>
</approx> </property>
<property> <reln><identity/>
  <cn>&ImaginaryI; </cn>
  <apply><root><cn>-1</cn><cn>2</cn></apply>
</reln>
</property>  
<property> <reln><approx>
<cn> &ExponentialE; </cn><cn>2.718281828 </cn>
</reln> </property>
<property> <apply><forall/>
  <bvar><ci type=boolean>p</ci></bvar>
 apply><and/>
    <ci>p</ci><cn>&true;</cn></apply>
    <ci>p</ci>  
  </apply>
</property>
<property> <apply><forall/>
  <bvar><ci type=boolean>p</ci></bvar>
  <apply><or/>
    <ci>p</ci><cn>&true;</cn></apply>
    <cn>&true;</cn>  
  </apply>
</property>
  <bvar><ci type=boolean>p</ci></bvar>
  <apply><or/>
    <ci>p</ci><cn>&true;</cn></apply>
    <cn>&true;</cn>  
  </apply>
</property>
<property> 
    <identity>
      <apply><not/><cn> &true; </apply>
      <cn> &false; </cn>
    </identity>
</property>
<property> <reln><identity/>
  <cn base="16"> A </cn> <cn> 10 </cn> </reln> </property>
<property> <reln><identity/>
  <cn base="16"> B </cn> <cn> 11 </cn> </reln></property>
<property> <reln><identity/>
  <cn base="16"> C </cn> <cn> 12 </cn> </reln></property>
<property> <reln><identity/>
  <cn base="16"> D </cn> <cn> 13 </cn> </reln></property>
<property> <reln><identity/>
  <cn base="16"> E </cn> <cn> 14 </cn> </reln></property>
<property> <reln><identity/>
  <cn base="16"> F </cn> <cn> 15 </cn> </reln></property>
</MMLdefinition>

C.2.1.2 ci

<MMLdefinition>  
<name> ci </name>  
<description>      
Un nome simbolico di costruttore. L'attributo type
può essere impostato a ogni tipo MathML valido.
</description>  
<functorclass> constructor , unary </functorclass>
<MMLattribute>          
  <name> type </name>          
  <value> constant | matrix | set | vector | list | MathMLtype </value>          
  <default> real </default>
</MMLattribute> 
<signature> ({string|mmlpresentation}) -> symbol(constant) </signature>
<signature> [type=MathMLType]({string|mmlpresentation}) -> symbol(MathMLType) </signature>
<example><ci> xyz </ci> </example>  
<example><ci> type="vector"> V </ci> </example>  
</MMLdefinition>

C.2.2 Elemento di contenuto fondamentale

C.2.2.1 apply

<MMLdefinition>  
<name> apply </name>  
<description>      
Questo è il costruttore MathML per l'applicazione di
funzioni. Il primo argomento è applicato ai rimanenti
argomenti. Può essere il caso che alcuni degli elementi
figli sono elementi con un nome. (Si veda la firma.)
</description>  
<functorclass> constructor , nary </functorclass>
<signature> (function,anything*) -> application </signature>
<example><apply><plus/><ci>x</ci><cn>1</cn></apply></example>  
<example><apply><sin/><ci>x</ci></apply></example>  
</MMLdefinition>

C.2.2.2 reln

<MMLdefinition>  
<name> reln </name>  
<description>      
Questo è il costruttore MathML per esprimere una relazione tra due
o più oggetti matematici. Il primo argomento indica il tipo di
"relazione" tra i rimanenti argomenti. (Si veda la firma.)
Non sono fatte assunzioni sul valore di verità di una tale
relazione. Tipicamente, la relazione è usata come componente nella
costruzione di qualche asserzione logica. Le relazioni possono essere
combinate in insiemi, ecc. come ogni altro oggetto matematico.
</description>  
<functorclass> constructor </functorclass>
<signature> (function,anything*) -> reln </signature>
<example><reln><and/><ci>P</ci><ci>Q</ci></reln></example>
<example><reln><lt/><ci>x</ci><ci>y</ci></reln></example>  
</MMLdefinition>

C.2.2.3 fn

<MMLdefinition>  
<name> fn </name>  
<description>      
Questo è il costruttore MathML per costruire nuovi nomi di
funzioni. Il "nome" può essere un elemento di contenuto MathML
generico. Esso identifica quell'oggetto come "utilizzabile" in
un contesto di funzione.
Impostando il suo valore di definitionURL, si può
associare ad esso una particolare definizione di
funzione. Si usi l'elemento declare del MathML per
associare un nome con un costrutto lambda.
</description>
<MMLattribute>
  <name>definitionURL</name>
  <value> URL </value>
  <default> none </default>
</MMLattribute>  
<functorclass> constructor </functorclass>
<signature> (anything) -> function </signature>
<signature> [definitionURL=functiondef](anything) -> 
  function(definitionURL=functiondef)
</signature>
<example><fn><ci>F</ci></fn></example>
<example><fn definitionURL="http://www.w3c/...">
  <lt/><ci>G</ci></fn>
</example>
<!--Si dichiara Id come la funzione identità.-->
<example>
  <declare><fn><ci>Id</ci></fn><lambda><ci>x</ci><ci>x</ci></declare>
</example>
</MMLdefinition>

C.2.2.4 interval

<MMLdefinition>  
<name> interval </name>  
<description>      
Questo è l'elemento costruttore del MathML per costruire un
intervallo sull'asse reale. Sebbene un intervallo possa essere
espresso combinando in modo appropriato delle relazioni, esse
occorrono esplicitamente a causa della loro frequenza di occorrenza
nell'uso comune.
</description>
<MMLattribute>
  <name>type</name>
  <value> closed | open | open-closed | closed-open </value>
  <default> closed </default>
</MMLattribute>  
<functorclass> constructor , binary </functorclass>
<signature> [type=intervaltype](expression,expression) -> interval </signature>
<example><reln><and/><ci>x</ci><cn>1</cn></reln></example>
<example><reln><lt/><ci>x</ci></reln></example>  
</MMLdefinition>

C.2.2.5 inverse

<MMLdefinition>  
<name> inverse </name>  
<description>      
Questo elemento MathML è applicato ad una funzione per costruire
una nuova funzione che deve essere interpretata come la funzione
inversa della funzione originale. Per una funzione particolare F,
inverse(F) composta con F si comporta come la mappa identità sul
dominio F e F composta con inverse(F) deve essere una funzione
identità di un sottoinsieme appositamente ristretto del
codominio di F.
L'attributo definitionURL del MathML deve essere usato per
risolvere ambiguità notazionali, o per restringere l'inversa
ad un particolare dominio o renderla univoca.
</description>  
<MMLattribute>
  <name>definitionURL</name>
  <value> CDATA </value>
  <default> none </default>
<!--none corrisponde ad usare la definizione predefinita del MathML ...-->
</MMLattribute>  
<functorclass> operator, unary </functorclass>
<signature> (function) -> function </signature>
<signature> [definitionURL=URL](function) -> 
    function(definition) </signature>
<example><apply><inverse/><sin/></apply></example>
<example>
  <apply>
  <inverse definitionURL="www.w3c.org/MathML/Content/arcsin"/>
  <sin/>
  </apply>
</example>
<property><apply><forall/>
  <bvar><ci>y</ci></bvar>
  <apply><sin/>
    <apply>
      <apply><inverse/><sin/></apply>
      <ci>y</ci>
    </apply>
  </apply>
  <value><ci>y</ci></value>
</apply>
</property>
<property>
<apply>
  <apply><inverse/><sin/></apply>
  <apply>
    <sin/>
    <ci>x</ci>
  </apply>
</apply>
<value><ci>x</ci></value>
</property>
<property>F(inverse(F)(y))<value>y</value></property>  
</MMLdefinition>

C.2.2.6 sep

<MMLdefinition>  
<name> sep </name>  
<description>      
Questo è il costruttore infisso del MathML usato per suddividere i
PCDATA in componenti separati. Per esempio, questo è usato nella
descrizione di un numero multiparte come un numero razionale o complesso.
</description>  
<functorclass> punctuation </functorclass>
<example><cn type="complex-polar">123<sep/>456</cn></example>
<example><cn>123</cn></example>  
</MMLdefinition>

C.2.2.7 condition

<MMLdefinition>  
<name> condition </name>  
<description>      
Questo è il costruttore MathML per costruire condizioni.
Una condizione è diversa da una relazione per come è usata.
Una relazione è semplicemente un'espressione, mentre una
condizione è usata come predicato per porre una condizione
su una variabile legata.
Per una condizione composta si usano le relazioni
o si applicano operatori come "and" o "or" o un
insieme di relazioni.
</description>  
<functorclass> constructor, unary </functorclass>
<signature> ({reln|apply|set}) -> predicate </signature>
<example>
<condition>
  <reln><lt/>
    <apply><power/>
      <ci>x</ci><cn>5</cn>
    </apply>
    <cn>3</cn>
  </reln>
</condition>
</example>
</MMLdefinition>

C.2.2.8 declare

<MMLdefinition>  
<name> declare </name>  
<description>      
Questo è il costruttore MathML per ridefinire le proprietà e i
valori con gli oggetti matematici. Per esempio V può essere un
nome dichiarato come vettore, o V può essere un nome che sta per
un vettore particolare.
I valori degli attributi dell'istruzione declare sono assegnati come
corrispondenti valori predefiniti degli attributi del primo oggetto.
</description>  
<functorclass> modifier , (unary | binary) </functorclass>
<MMLattribute>
<name>definitionURL</definition>
<value> Any valid URL </value>
</MMLattribute>
<MMLattribute>
<name>type</name><value> MathMLType </value>
</MMLattribute>
<MMLattribute>
<name>nargs</name><value> numero di argomenti per un oggetto di tipo fn </value>
</MMLattribute>
<signature> [attributename=attributevalue](anything)   -> anything(attributevalue) </signature>
<!-- La forma a due argomenti aggiorna le proprietà del primo oggetto
a quelle del secondo. I valori degli attributi sovrascrivono le
proprietà del "valore".
-->
<signature> [attributename=attributevalue](anything,anything)   -> anything(attributevalue) </signature>
<example><reln><and/><ci>x</ci><cn>1</cn></reln></example>
<example><reln><lt/><ci>x</ci></reln></example>  
</MMLdefinition>

C.2.2.9 lambda

<MMLdefinition>
<name> lambda </name>
<description> L'operazione del lambda calcolo che crea una
funzione da un'espressione e una variabile. La definizione a
questo livello usa solo una variabile. Lambda è una funzione
binaria, dove il primo argomento è la variabile e il secondo
argomento è l'espressione.
Lambda( x, F ) è scritto come \lambda x [F] nella letteratura
del lambda calcolo.
La funzione lambda può essere vista come l'inversa dell'applicazione
di funzione.
Sebbene l'espressione F possa contenere x, l'espressione lambda è
interpretata come libera da x. Ovvero, la variabile x è una
variabile locale all'ambiente della definizione della funzione o
dell'operatore. Formalmente, lambda(x,F) è libera da x, e ogni
sostituzione, valutazione o confronto per x in lambda(x,F)
non deve succedere.
Un'espressione lambda su una funzione arbitraria applicata
ad un semplice argomento è equivalente alla funzione arbitraria.
Es. lambda(x, f(x)) == F. Questa è una scorciatoia comune.
</description>
  <functorclass> Nary , Constructor </functorclass>
  <property>
    <lambda><ci>x</ci>
      <apply><fn><ci>F</ci></fn><ci>x</ci></apply>
    </lambda>
     <value> <fn><ci>F</ci></fn> </value>
  </property>
<!-- Costruire una variante della funzione seno -->
   <example>
      <lambda>
        <ci> x </ci> 
        <apply><sin/>
          <apply><plus/>
            <ci> x </ci>
            <cn> 3 </cn>
        </apply>
      </lambda>
   </example>
<!-- l'operatore identità  -->
  <example>
    <lambda><ci> x </ci> <ci> x </ci> </lambda> 
  </example>
  <property>
  <reln><identity/>
    <lambda><ci>x</ci>
      <apply><fn><ci>F</ci></fn><ci>x</ci></apply>
    </lambda>
    <fn><ci>F</ci></fn> 
  </reln>
  </property>
<MMLdefinition> 

C.2.2.10 compose

<MMLdefinition>  
<name> compose </name>  
<description>      
  Questo è il costruttore MathML per comporre funzioni.
  Perché una composizione abbia senso, il codominio della
  prima funzione deve essere il dominio della seconda funzione,
  ecc.
  Il risultato è una nuova funzione il cui dominio è il dominio
  della prima funzione e il cui codominio è il codominio dell'ultima
  funzione e la cui definizione è equivalente ad applicare ogni
  funzione al risultato precedente a sua volta come in:
  (f @ g )( x )   ==  f( g(x) ).
Questa funzione è spesso denotata da un operatore infisso
piccolo cerchio.
</description>  
<functorclass> Nary , Operator </functorclass>
<signature> (fn*) -> fn </signature>
<example>
<apply><compose/>
       <fn><ci> f </ci></fn>
       <fn><ci> g </ci></fn>
     </apply></example>
<property>
<apply><forall>
  <bvar><ci>x</ci></bvar>
  <reln><eq/>
    <apply>
      <apply><compose/>
        <ci>f</ci>
        <ci>g</ci>
      </apply>
      <ci>x</ci>
    </apply>
    <apply><ci>f</ci>
      <apply><ci>g</ci>
        <ci>x</ci>
      </apply>
    </apply>
  </reln>
</apply>    
</property>
</MMLdefinition>

C.2.2.11 ident

<MMLdefinition>  
<name> ident </name>  
<description>      
  Questo è il costruttore MathML per la funzione identità.
  Questa funzione ha la proprietà che
       f( x ) = x,  per ogni x nel suo dominio.
</description>  
<functorclass> Nary , Operator </functorclass>
<signature> (symbol) -> symbol </signature>
<example>
<apply><ident/>
       <ci> f </ci>
       <ci> x </ci>
</apply>
</example>
<property>
<apply><forall>
  <bvar><ci>x</ci></bvar>
  <reln><eq/>
    <apply><ident/>
        <ci>f</ci>
        <ci>x</ci>
    </apply>
    <ci>x</ci>
    </reln>
</apply>
</property>
</MMLdefinition>

C.2.3 Aritmetica, algebra e logica

C.2.3.1 quotient

<MMLdefinition>
La funzione binaria usata per rappresentare
il quoziente di due interi.
divisione. Per gli argomenti a e b, tali che
il segno di a, il suo valore sarebbe q.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>integer</default>
</MMLattribute>
<signature> (integer, integer) -> integer </signature>
<signature> [type=integer](symbolic, symbolic) -> symbolic </signature>
<property><apply><forall/>
<bvar><ci>a</ci>
</bvar>
<bvar><ci>b</ci>
</bvar>
<reln/>
<eq/>
<ci>a</ci>
<apply><plus/>
<apply><times/>
<ci>b</ci>
<apply><quotient/>
<ci>a</ci>
<ci>b</ci>
</apply>
</apply>
<apply><rem/>
<ci>a</ci>
<ci>b</ci>
</apply>
</apply>
<apply/>
</apply></property>
<property><apply><ident/>
<apply><quotient/>
<ci>5</ci>
<ci>4</ci>
</apply>
<ci>1</ci>
</apply></property>
=======
<name> quotient </name>
    <description> Quoziente intero, il risultato della
      divisione intera. Per gli argomenti a e b, restituisce q,
      dove a = b*q+r, |r| < |b| e a*r >= 0 (o il segno di r
      è uguale al segno di a).
     </description>
       <functorclass> Binary, Function </functorclass>
       <signature> (integer, integer) -> integer </signature>
       <signature> (symbolic, symbolic) -> symbolic  ->  =>  → </signature>
       <property>
       <description>
       ForAll(bvar(a,b),identity(a ,b*Quotient(a,b) + Remainder(a,b))  
       </description>
       <apply><forall/>
         <bvar><ci>a</ci></bvar>
         <bvar><ci>b</ci></bvar>
         <reln/><eq/>
             <ci>a</ci>
             <apply><plus/>
               <apply><times/>
                 <ci>b</ci>
                 <apply><quotient/><ci>a</ci><ci>b</ci></apply>
               </apply>
               <apply><rem/><ci>a</ci><ci>b</ci></apply>
             </apply>
         <reln>
       </apply>
       </property>
       <property>
     <description>
   1 = quotient(5,4)
     </description>
      <apply><identity/>
        <apply><quotient/>
          <ci>5</ci>
          <ci>4</ci>
        </apply>
        <ci>1</ci>
     <apply>
     </property>
</MMLdefinition>

C.2.3.2 exp

<MMLdefinition>
La funzione esponenziale.
<reference> M. Abramowitz e I. Stegun, Handbook of
Mathematical Functions, [4.2]</reference>
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature> real -> real </signature>
<signature> symbolic -> symbolic </signature>
<property><apply><eq/>
<apply><exp/>
<cn>0</cn>
</apply>
<cn>1</cn>
</apply></property>
<property><apply><ident/>
<apply><exp/>
<ci>x</ci>
</apply>
<apply><power/>
<cn>ExponentialE;</cn>
<ci>x</ci>
</apply>
</apply></property>
<property> exp(x) = limit( (1+x/n)^n, n, infinity ) </property>
</MMLdefinition>

C.2.3.3 factorial

<MMLdefinition>
Questo elemento è usato per costruire fattoriali
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
qualunque tipo MathML
</values>
<default>integerl</default>
</MMLattribute>
<signature> ( algebraic ) -> algebraic </signature>
<signature>(integer)->integer</signature>
<property><apply><forall/>
<bvar><ci>n</ci></bvar>
<condition><apply><gt/>
<ci>n</ci>
<cn>0</cn>
</apply>
</condition>
<apply><eq/>
<apply><factorial/><ci>n</ci></apply>
  <apply><times/>
    <ci>n</ci>
    <apply><factorial/>
      <apply><minus/><ci>n</ci><cn>1</cn></apply>
    </apply>
  </apply>
</apply>
</apply>
</property>
<example><apply><factorial/>
<ci>n</ci>
</apply></example>
</MMLdefinition>

C.2.3.4 divide

<MMLdefinition>
Questo è l'operatore binario MathML che è usato per costruire
l'espressione matematica a "diviso" b. In generale,
costruisce l'espressione che è equivalente
alla moltiplicazione a destra per l'inverso
moltiplicativo di b.
classificazione=funzione
<MMLattribute>
<attname> type </attname>
<attvalue> anything <sep/>non-commutative</attvalue>
<attdefault> real </attdefault>
</MMLattribute>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<signature> (complex, complex) -> complex </signature>
<signature> (real, real) -> real </signature>
<signature> (rational, rational) -> rational </signature>
<signature> (integer, integer) -> rational </signature>
<signature> (symbolic, symbolic) -> symbolic </signature>
<property><apply><forall/>
  <bvar><ci>a</ci></bvar>
  <apply><eq/>
    <apply><divide/>
      <ci> a </ci>
      <ci> 0 </ci>
    </apply>
    <apply><ci>Error</ci>
      <ci>Division by 0</ci>
    </apply>
  </apply>
</apply>
</property>
<property>whenever not(a=0) then a/a = 1 </property>
<example><apply><divide/>
<ci> a </ci>
<ci> b </ci>
</apply></example>
</MMLdefinition>

C.2.3.5 max

<MMLdefinition>
Rappresenta il massimo di un insieme di elementi. Gli elementi
possono essere elencati esplicitamente o possono essere
descritti da una condizione, es, il massimo
fra tutte le x nell'insieme A.
Perché sia ben definito, tutti gli elementi
devono essere confrontabili.
classificazione= funzione 
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature> ( ordered_set_element * ) -> ordered_set_element </signature>
<signature> ( bvar,condition,anything ) ->  ordered_set_element </signature>
<example><apply><max/>
<cn>2</cn>
<cn>3</cn>
<cn>5</cn>
</apply></example>
<example><apply>
  <max/>
  <bvar><ci>y</ci></bvar>
  <condition>
  </condition>
  <apply>
      <power/>
    <ci> y</ci>
    <cn>x </cn>
  </apply>
</apply>
</example>
</MMLdefinition>

C.2.3.6 min

<MMLdefinition>
Rappresenta il massimo di un insieme di elementi. Gli elementi
possono essere elencati esplicitamente o possono essere
descritti da una condizione, es, il massimo
fra tutte le x nell'insieme A.
Perché sia ben definito, tutti gli elementi
devono essere confrontabili.
classificazione= funzione 
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature> ( ordered_set_element * ) -> ordered_set_element </signature>
<signature> ( bvar,condition,anything ) ->  ordered_set_element </signature>
<example><apply><min/>
<cn>2</cn>
<cn>3</cn>
<cn>5</cn>
</apply></example>
<example><apply>
  <min/>
  <bvar><ci>x</ci></bvar>
  <condition>
  </condition>
  <apply>
      <power/>
    <ci> x </ci>
    <cn> 2 </cn>
  </apply>
</apply>
</example>
</MMLdefinition>

C.2.3.7 minus

<MMLdefinition>
L'operatore di sottrazione per un gruppo additivo.
 
Se è fornito un argomento questo costruisce l'inverso
additivo di tale elemento del gruppo.
Se sono forniti due argomenti, siano essi a e b,
costruisce l'espressione matematica a - b.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature>[type=typevalue](typevalue,typevaluel) -> typevalue </signature>
<signature>[type=typevalue](typevalue)->typevalue </signature>
<property><apply><eq/>
<bvar><ci>n</ci>
</bvar>
<apply><minus/>
<cn>1</cn>
</apply>
<cn>-1</cn>
</apply></property>
<example><apply><minus/>
<cn>3</cn>
<cn>5</cn>
</apply></example>
<example><apply><minus/>
<cn>3</cn>
</apply></example>
</MMLdefinition>

C.2.3.8 plus

<MMLdefinition>
L'operatore N-ario di addizione di una struttura algebrica.
Se non sono forniti operandi, l'espressione rappresenta
l'elemento neutro additivo.
Se è fornito un operando, a, l'espressione assume il
valore "a".
Se sono forniti due o più operandi, l'espressione rappresenta
l'elemento del gruppo che corrisponde ad un accoppiamento
binario degli operandi associativo a sinistra.
Problemi relativi al "valore" di operandi misti sono
lasciati al sistema di destinazione. Se l'autore desidera
fare riferimento a specifiche regole di coercizione
di tipo, allora deve essere usato l'attributo definitionURL
per fare riferimento ad una specifica adatta.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature>[type=typevalue](typevalue*) -> typevalue </signature>
<property> plus( ) = 0 </property>
<property> +(a) = a </property>
<property> ForAll(a,Commutative, a + b = b + a)</property>
<example><apply><plus/>
<cn>3</cn>
</apply></example>
<example><apply><plus/>
<cn>3</cn>
<cn>5</cn>
</apply></example>
<example><apply><plus/>
<cn>3</cn>
<cn>5</cn>
<cn>7</cn>
</apply></example>
</MMLdefinition>

C.2.3.9 power

<MMLdefinition>
L'operatore binario di elevamento a potenza usato per costruire
espressioni come a "alla" b. In particolare, è l'operazione
per la quale a "alla" seconda è equivalente ad a * a.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature> (complex complex) -> complex </signature>
<signature> (real real) -> complex </signature>
<signature> (rational rational) -> complex </signature>
<signature> (rational integer) -> rational </signature>
<signature> (integer integer) -> rational </signature>
<signature> (symbolic symbolic) -> symbolic </signature>
<signature>[type=typevalue](typevalue,typevalue) -> typevalue </signature>
<property> ForAll(a,Condition(a_NE_0),a^0=1) </property>
<property> ForAll(a,a^1=a) </property>
<property> ForAll(a,1^a=1) </property>
<property>ForAll(a,0^0=Undefined)</property>
</MMLdefinition>

C.2.3.10 rem

<MMLdefinition>
Resto di una divisione intera.
Per gli argomenti a e b, tali che
uguale al segno di a, il suo valore è r.
classificazione= funzione, binaria 
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>integer</default>
</MMLattribute>
<signature> (integer integer) -> integer </signature>
<signature> (symbolic symbolic) -> symbolic </signature>
<signature>[type=typevalue](typevalue,typevalue)->typevalue</signature>
<property> a = b*rem(a,b) + rem(a,b) </property>
<property>rem(a,0) = Division_by_Zero</property>
</MMLdefinition>

C.2.3.11 times

<MMLdefinition>
L'operatore n-ario di moltiplicazione di
un anello.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature> (complex *) -> complex </signature>
<signature> (real*) -> real </signature>
<signature> (rational*) -> rational </signature>
<signature> (integer*) -> integer </signature>
<signature> (symbolic*) -> symbolic </signature>
<property>ForAll(bvars(a,b),condition(in({a,b},Commutative)),a*b=b*a)</property>
<property>ForAll(bvars(a,b,c),Associative,a*(b*c)=(a*b)*c), associativity </property>
<property> a*1=a </property>
<property> 1*a=a </property>
<property> a*0=0 </property>
<property> 0*a=0 </property>
</MMLdefinition>

C.2.3.12 root

<MMLdefinition>
Costruisce la radice n-esima di un oggetto.
Il primo argomento "a" è l'oggetto e il secondo
oggetto "n" denota la radice, come in
( a ) ^ (1/n)
classificazione= funzione, binaria 
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> real <sep/> complex <sep/> principle_branch </attvalue>
<attdefault> real </attdefault>
</MMLattribute>
<signature> ( anything , anything) -> root </signature>
<property> Forall(bvars(a,n),root(a,n) = a^(1/n)) </property>
<example><apply><root/>
<ci> a </ci>
<ci> n </ci>
</apply></example>
</MMLdefinition>

C.2.3.13 gcd

<MMLdefinition>
Questo operatore è usato per costruire
un'espressione che rappresenta il massimo comun
divisore dei suoi argomenti.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>integer</default>
</MMLattribute>
<signature> [type=typevalue](typevalue*) ->typevalue </signature>
<property>Forall(p,q,(is(p,prime) and is(q,prime)) , gcd(p,q)=1 </property>
<example><apply><gcd/>
<cn>12</cn>
<cn>17</cn>
</apply></example>
</MMLdefinition>

C.2.3.14 and

<MMLdefinition>
Questo è l'operatore logico n-ario "and". E' usato per
costruire l'espressione logica che ha valore "vero"
quando tutti i suoi operandi hanno valore di verità
"vero", e "falso" altrimenti.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> qualunque tipo MathML</attvalue>
<attdefault> complex </attdefault>
</MMLattribute>
<signature> (boolean*) -> boolean </signature>
<signature> [type="boolean"](symbolic*)      -> boolean </signature>
<property> identity(true and p , p ) </property>
<property> identity(p and q , q and p ) </property>
<example><apply><and/>
<ci>p</ci>
<ci>q</ci>
</apply></example>
</MMLdefinition>

C.2.3.15 or

<MMLdefinition>
L'operatore logico "or". L'espressione costruita ha un
valore di verità vero se almeno uno dei suoi argomenti è vero.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>boolean</default>
</MMLattribute>
<signature> (boolean*) -> boolean </signature>
<signature> [type="boolean"](symbolic*)      -> boolean </signature>
<property> ...</property>
</MMLdefinition>

C.2.3.16 xor

<MMLdefinition>
L'operatore logico "xor". L'espressione costruita ha valore
di verità vero se esattamente uno degli argomenti è vero.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>boolean</default>
</MMLattribute>
<signature> (boolean*) -> boolean </signature>
<signature> [type="boolean"](symbolic*)      -> symbolic </signature>
</MMLdefinition>

C.2.3.17 not

<MMLdefinition>
L'operatore logico "not" nega il valore di verità
del suo singolo argomento. es., not P
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>boolean</default>
</MMLattribute>
<signature> (boolean) -> boolean </signature>
<signature> [type="boolean"](symbolic)      -> symbolic </signature>
</MMLdefinition>

C.2.3.18 implies

<MMLdefinition>
L'operatore implica. Questo rappresenta
la costruzione dell'espressione logica
  "A implica B".   
classificazione= Relazione, binaria 
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>boolean</default>
</MMLattribute>
<signature> (boolean,boolean) -> boolean </signature>
<property><apply><forall/>
<bvar><ci>A</ci>
</bvar>
<bvar><ci>B</ci>
</bvar>
<apply><eq/>
<apply><implies/>
<ci>A</ci>
<ci>B</ci>
</apply>
<apply><or/>
<ci>B</ci>
<apply><not/>
<ci> A </ci>
</apply>
</apply>
</apply>
</apply></property>
</MMLdefinition>

C.2.3.19 forall

<MMLdefinition>
Il quantificatore logico "Per ogni" è applicato
agli argomenti per costruire un predicato. Le variabili
legate sono etichettate con bvar, e l'ultimo argomento
è il predicato booleano asserito come vero.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>boolean</default>
</MMLattribute>
<signature> (bvar*,condition?,apply) -> boolean </signature>
<signature> (bvar*,condition?,(reln)) -> boolean </signature>
</MMLdefinition>

C.2.3.20 exists

<MMLdefinition>
Questo è l'operatore MathML che è usato per
asserire l'esistenza, come in "Esiste x tale che
x è reale e x è positivo".
Si aspetta tre argometnti.
Il primo argomento indica la variabile legata. Il
secondo argomento pone condizioni su tale
variabile legata. L'ultimo argomento è l'espressione
asserita come vera.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>boolean</default>
</MMLattribute>
<signature> (element,set) ->boolean </signature>
</MMLdefinition>

C.2.3.21 abs

<MMLdefinition>
Un operatore unario che rappresenta il valore assoluto del suo
argomento. Nel caso complesso questo è spesso detto modulo.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature>(real)->real</signature>
<signature>(complex)->real</signature>
<property>for all x and y, abs(x) + abs(y) >= abs(x+y) 
</property>
<example><apply><abs/><ci>x</ci></apply></example>
</MMLdefinition>

C.2.3.22 conjugate

<MMLdefinition>
L'operatore aritmetico "conjugate" è
usato per rappresentare il complesso coniugato del
suo argomento. In particolare, conjugate( ImaginaryI )
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<attname> type </attname>
<attvalue> qualunque cosa </attvalue>
<attdefault> complex </attdefault>
</MMLattribute>
<signature> (algebraic) -> algebraic </signature>
<signature>(complex)->complex</signature>
</MMLdefinition>

C.2.3.23 arg

<MMLdefinition>
L'operatore "arg" è usato per costruire un'espressione
che rappresenta "l'argomento"
di un numero complesso.
classificazione=funzione
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<MMLattribute>
<name>type</name>
<values>
qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<signature>(compex)->real</signature>
<property>???</property>
<ci>a</cn>
<ci>&epsilon</cn>
<ci><mrow><msup><mi>a</mi><mi>b</mi><mrow></cn>
<ci>v</ci>
</MMLdefinition>

C.2.3.24 real

<MMLdefinition>
Un operatore usato per costruire un'espressione
che rappresenta la parte "reale" di un numero complesso.
classificazione=unario
<MMLattribute>
<name>type</name>
<values>
Qualunque tipo MathML
</values>
<default>real</default>
</MMLattribute>
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<signature>(complex)->real</signature>
<ci>a</cn>
<ci>&epsilon</cn>
<ci><mrow><msup><mi>a</mi><mi>b</mi><mrow></cn>
<ci>v</ci>
</MMLdefinition>

C.2.3.25 imaginary

<MMLdefinition>
Un nome usato come identificatore simbolico.
classificazione=costante
<MMLattribute>
<attname>definitionURL</attname>
<attvalue> CDATA </attvalue>
<attdefault> none </attdefault>
</MMLattribute>
<signature>(complex)->real</signature>
<example><cn type="constant">&Imaginary;</cn></example>
</MMLdefinition>

C.2.4 Relazioni

C.2.4.1 eq

<MMLdefinition>
<Name> eq </Name>
<description> L'operatore di uguaglianza. </description>
<functorclass> Relazione, n-aria </functorclass>
<property> Commutativa </property>
<signature> (symbolic symbolic) -> boolean </signature>
</MMLdefinition>

C.2.4.2 neq

<MMLdefinition>
<Name> neq </Name>
<description> L'operatore non uguale. </description>
<functorclass> Relazione, n-aria </functorclass>
<property> Commutativa </property>
<signature> (symbolic symbolic) -> boolean </signature>
</MMLdefinition>

C.2.4.3 gt

<MMLdefinition>
<Name> gt </Name>
<description> L'operatore di uguaglianza. </description>
<functorclass> relazione, binaria </functorclass>
<property> Commutativa </property>
<signature> (symbolic symbolic) -> boolean </signature>
</MMLdefinition>

C.2.4.4 lt

<MMLdefinition>
<Name> lt </Name>
<description> L'operatore di disuguaglianza di uguaglianza "<" </description>
<functorclass> relazione, binaria </functorclass>
<property> Commutativa </property>
<signature> (symbolic, symbolic*) -> boolean </signature>
</MMLdefinition>

C.2.4.5 geq

<MMLdefinition>
<Name> geq </Name>
<description> L'operatore di disuguaglianza. >= </description>
<functorclass> Relazione, n-aria </functorclass>
<signature> (symbolic, symbolic*) -> boolean </signature>
<property> ... Commutativa ? ... </property>
</MMLdefinition>

C.2.4.6 leq

<MMLdefinition>
<Name> leq </Name>
<description> L'operatore di disuguaglianza  </description>
<functorclass> Relazione, n-aria </functorclass>
<property> Commutativa </property>
<signature> (symbolic symbolic) -> boolean </signature>
</MMLdefinition>

C.2.5 Analisi matematica

C.2.5.1 ln

<MMLdefinition>
<name>ln</name>
<description>
La funzione logaritmica. Detta anche logaritmo naturale. L'inversa della
funzione esponenziale.
<Reference> M. Abramowitz e I. Stegun, Handbook of
Mathematical Functions, [4.1]
</Reference>
</description>
<functorclass> Funzione, Unaria </functorclass>
<property>
    Error( "il logaritmo ha una singolarità in 0" )
</property>
<signature> Intersect(real,positive) -> real </signature>
<signature> symbolic -> symbolic </signature>
<property> ln(1) = 0 </property>
<property> ln(exp(x)) = x, "for real x" </property>
<property> exp(ln(x)) = x, always </property>
</MMLdefinition>

C.2.5.2 log

    <MMLdefinition>
        <Name> log </Name>
        <description> La funzione logaritmica (base 10), o in
qualunque altra base specificata dall'utente.
Detto anche logaritmo naturale.
L'inversa della funzione esponenziale.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
Mathematical Functions, [4.1]
            </Reference>
        </description>
        <functorclass> Funzione, Unaria </functorclass>
        <signature> (real,logbase) -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property>
            Error( "il logaritmo ha una singolarità in 0" )
        </property>
      </MMLdefinition>

C.2.5.3 int

 <MMLdefinition>
        <Name> int </Name>
        <description>
            L'integrale definito o indefinito di una funzione o di
            un'espressione algebrica.
            Ci sono varie forme di sequenze chiamanti a seconda della
            natura degli argomenti, e se è o meno un integrale
            definito.
        </description>
        <functorclass> Funzione, Binaria </functorclass>
        <signature> (function) -> function </signature>
        <signature> (algebraic,bvar) -> algebraic </signature>
        <signature> (algebraic,bvar,interval) -> algebraic </signature>
        <signature> (algebraic,bvar,condition) -> algebraic </signature>
    </MMLdefinition>

C.2.5.4 diff

   <MMLdefinition>
        <Name> diff </Name>
        <description>
            Per espressioni, questo rappresenta la derivata del
            suo primo argomento valutata nel secondo argomento.
	    Per funzioni unarie (solo un argomento) rappresenta
	    f'.
        </description>
        <functorclass> (Unary | Binary) , Function </functorclass>
        <signature> (algebraic,bvar) -> algebraic </signature>
        <property>Forall(x,diff( sin(x) , x ) = cos(x)) </property>
        <property>Forall(x,diff( x , x ) = 1 ) </property>
        <property>Forall(x,diff( x^2 , x ) = 2x) </property>
        <property>identity( diff(sin) , cos ) </property>
    </MMLdefinition>

C.2.5.5 partialdiff

   <MMLdefinition>
        <Name> partialdiff </Name>
        <description>
            Per espressioni, questo rappresenta la derivata del 
            suo primo argomento valutata nel secondo argomento. 
            Per funzioni unarie (solo un argomento) rappresenta 
            f'.
        </description>
        <functorclass> (Binary) , Function </functorclass>
        <signature> (algebraic,bvar) -> algebraic </signature>
        <property>Forall(x,diff( sin(x*y) , x ) = cos(x)) </property>
        <property>Forall(x,y,diff( x*y , x ) = diff(x,x)*y + diff(y,x)*x ) </property>
        <property>Forall(x,a,b,diff( a + b , x ) = diff(a,x) + diff(b,x) ) </property>
        <property>identity( diff(sin) , cos ) </property>
    </MMLdefinition>

C.2.5.6 lowlimit

    <MMLdefinition>
        <Name> lowlimit </Name>
        <description> Costruisce un limite inferiore. I
	 limiti sono usati in alcuni integrali come modo
	 alternativo di descrivere la regione sulla quale
	 è calcolato un integrale. (es. una componente
	 connessa dell'asse reale.)
         </description>
        <functorclass> Constructor </functorclass>
        <signature> (anything*) -> list </signature>
    </MMLdefinition>

C.2.5.7 uplimit

    <MMLdefinition>
        <Name> uplimit </Name>
        <description> Costruisce un limite superiore. I
         limiti sono usati in alcuni integrali come modo
         alternativo di descrivere la regione sulla quale
         è calcolato un integrale. (es. una componente
         connessa dell'asse reale.)
         </description>
        <functorclass> Constructor </functorclass>
        <signature> (anything*) -> list </signature>
    </MMLdefinition>

C.2.5.8 bvar

    <MMLdefinition>
        <Name> bvar </Name>
        <description> 
L'elemento bvar è l'elemento contenitore
per la "variabile legata" di un'operazione.
Per esempio, in un integrale specifica la
variabile di integrazione. In una derivata,
indica rispetto a quale variabile è
derivata una funzione.
Quando l'elemento bvar è usato per quantificare una derivata,
l'elemento bvar può contenere un elemento figlio degree
che specifica l'ordine della derivata rispetto a quella
variabile. L'elemento bvar è usato anche per le variabili
interne in sommatorie e produttorie.
    </description>
        <functorclass> Constructor </functorclass>
        <signature> (symbol) -> symbol </signature>
        <example> <bvar><ci>x</ci></bvar></example>
    </MMLdefinition>

C.2.5.9 degree

    <MMLdefinition>
        <Name> degree </Name>
        <description> Un parametro usato da alcuni
	tipi di dati del MathML per specificare che, per
	esempio, una variabile legata è ripetuta varie volte.
        </description>
        <functorclass> Constructor </functorclass>
        <signature> (algebraic) -> algebraic </signature>
        <example> <degree><ci>x</ci></degree></example>
        <property> ... </property>
    </MMLdefinition>

C.2.6 Teoria degli insiemi

C.2.6.1 set

    <MMLdefinition>
        <Name> set </Name>
        <description> Costruisce un insieme. </description>
        <functorclass> Nary, Constructor </functorclass>
        <signature> (anything*) -> set </signature>
    </MMLdefinition>

C.2.6.2 list

    <MMLdefinition>
        <Name> list </Name>
        <description> Costruisce una lista. </description>
        <functorclass> Nary, Constructor </functorclass>
        <signature> (anything*) -> list </signature>
    </MMLdefinition>

C.2.6.3 union

    <MMLdefinition>
        <Name> union </Name>
        <description> L'unione di due insiemi. </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (set*) -> set </signature>
    </MMLdefinition>

C.2.6.4 intersect

    <MMLdefinition>
        <Name> intersection </Name>
        <description> L'intersezione di due insiemi. </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (set set) -> set </signature>
    </MMLdefinition>

C.2.6.5 in

    <MMLdefinition>
        <Name> in </Name>
        <description> 
            L'operazione di controllo di appartenenza (detta
	    comunemente anche "in" o "include"). Restituisce vero se
	    il primo argomento è parte del secondo argomento. Il
	    secondo argomento deve essere un insieme.
        </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (anything, set) -> boolean </signature>
    </MMLdefinition>

C.2.6.6 notin

    <MMLdefinition>
    <Name> notin </Name>
    <description> 
        L'operazione di esclusione di appartenenza (detta
	comunemente anche "non in" o "include").
	E' definita come "non in".
    </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (anything set) -> boolean </signature>
    </MMLdefinition>

C.2.6.7 subset

    <MMLdefinition>
    <Name> subset </Name>
    <description>
      Funzione booleana il cui valore è determinato da
      se un sottoinsieme è o meno sottoinsieme di un altro.
     </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (set*) -> boolean </signature>
    </MMLdefinition>

C.2.6.8 prsubset

    <MMLdefinition>
    <Name> prsubset </Name>
    <description>
      Funzione booleana il cui valore è determinato da
      se un sottoinsieme è o meno sottoinsieme proprio di un altro.
     </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (set, set) -> boolean </signature>
        <property>...</property>
    </MMLdefinition>

C.2.6.9 notsubset

    <MMLdefinition>
    <Name> notsubset </Name>
    <description>
      Funzione booleana il cui valore è il complemento
      di "sottoinsieme".
     </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (set, set) -> boolean </signature>
        <property>...</property>
    </MMLdefinition>

C.2.6.10 notprsubset

    <MMLdefinition>
    <Name> notprsubset </Name>
    <description>
      Funzione booleana il cui valore è il complemento
      di "sottoinsieme proprio".
     </description>
        <functorclass> Binary, Function </functorclass>
        <signature> (set, set) -> boolean </signature>
        <property>...</property>
    </MMLdefinition>

C.2.6.11 setdiff

    <MMLdefinition>
    <Name> setdiff </Name>
    <description>
      Funzione che indica la differenza di due insiemi.
    </description>
    <functorclass> Binary, Function </functorclass>
    <signature> (set, set) -> set </signature>
    <property>...</property>
    </MMLdefinition>

C.2.7 Successioni e serie

C.2.7.1 sum

<MMLdefinition>
<Name> sum </Name>
<description> 
L'elemento sum denota l'operatore di sommatoria. I limiti superiori
e inferiori per la sommatoria, e più generalmente un dominio per le
variabili legate, sono specificati usando uplimit, lowlimit o una
condizione sulle variabili legate. L'indice per la sommatoria è
specificato da un elemento bvar. L'elemento sum accetta l'attributo definition
che può essere usato per sovrascrivere la semantica predefinita.
</description>
<functorclass> Unary, Function </functorclass>
<signature> (bvar*,((lowlimit,uplimit)|condition),algebraic) -> sum </signature>
<signature> ... </signature>
</MMLdefinition>

C.2.7.2 product

<MMLdefinition>
<Name> product </Name>
<description> 
L'elemento product denota l'operatore produttoria. I limiti superiori
e inferiori per la produttoria, e più generalmente un dominio per le
variabili legate, sono specificati usando uplimit, lowlimit o una
condizione sulle variabili legate. L'indice per la produttoria è
specificato da un elemento bvar.
L'elemento product accetta l'attributo definition che può essere usato
per sovrascrivere la semantica predefinita.
</description>
<functorclass> Unary, Function </functorclass>
<signature> (bvar*,((lowlimit,uplimit)|condition),algebraic)   -> product </signature>
<signature> ... </signature>
<signature> ... </signature>
</MMLdefinition>

C.2.7.3 limit

<MMLdefinition>
<Name> limit </Name>
<description> 
L'elemento sum denota l'operatore di sommatoria.
I limiti superiori e inferiori per la sommatoria,
e più generalmente un dominio per le variabili legate,
sono specificati usando uplimit, lowlimit o una
condizione sulle variabili legate. L'indice per la sommatoria
è specificato da un elemento bvar.
</description>
<functorclass> Nary, Function </functorclass>
<signature> (bvar*,(lowlimit | condition*),algebraic) -> limit </signature>
</MMLdefinition>

C.2.7.4 tendsto

<MMLdefinition>
<Name> tendsto </Name>
<description> tendsto è usato per specificare come è
calcolato un limite. Accetta un attributo type che determina
il modo in cui esso tende ad un valore.
</description>
<functorclass> binary, Function </functorclass>
<signature> (symbol,anything) -> condition(limit) </signature>
<signature> [type=direction](symbol,anything) ->    condition(limit) </signature>
</MMLdefinition>

C.2.8 Trigonometria

C.2.8.1 sin

    <MMLdefinition>
        <Name> sin </Name>
        <description> La funzione trigonometrica circolare seno
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> sin(0) = 0 </property>
        <property> sin(integer*Pi) = 0 </property>
        <property> sin((Z+1/2)*Pi) = (-1)^Z, "per Z intero" </property>
        <property> -1 <= sin(real) </property>
        <property> sin(real) <= 1 </property>
        <property> sin(3*x)=-4*sin(x)^3+3*sin(x), "formula dell'angolo triplo"
            <Reference> v. sopra, [4.3.27] </Reference>
        </property>
    </MMLdefinition>

C.2.8.2 cos

   <MMLdefinition>
        <Name> cos </Name>
        <description> La funzione coseno.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> cos(0) = 1 </property>
        <property> cos(integer*Pi+Pi/2) = 0 </property>
        <property> cos(Z*Pi) = (-1)^Z, "per Z intero" </property>
        <property> -1 <= cos(real) </property>
        <property> cos(real) <= 1 </property>
    </MMLdefinition>

C.2.8.3 tan

    <MMLdefinition>
        <Name> tan </Name>
        <description> La funzione tangente.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> tan(integer*Pi) = 0 </property>
        <property> tan(x) = sin(x)/cos(x) </property>
    </MMLdefinition>

C.2.8.4 sec

   <MMLdefinition>
        <Name> sec </Name>
        <description> La funzione secante.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> sec(x) = 1/cos(x) </property>
    </MMLdefinition>

C.2.8.5 csc

    <MMLdefinition>
        <Name> csc </Name>
        <description> La funzione cosecante.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> csc(x) = 1/sin(x) </property>
    </MMLdefinition>

C.2.8.6 cot

    <MMLdefinition>
        <Name> cot </Name>
        <description> La funzione cotangente.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> cot(integer*Pi+Pi/2) = 0 </property>
        <property> cot(x) = cos(x)/sin(x) </property>
    </MMLdefinition>

C.2.8.7 sinh

    <MMLdefinition>
        <Name> sinh </Name>
        <description> La funzione seno iperbolico.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property>...</property>
    </MMLdefinition>

C.2.8.8 cosh

    <MMLdefinition>
        <Name> sinh </Name>
        <description> La funzine seno iperbolico.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property>...</property>
    </MMLdefinition>

C.2.8.9 tanh

    <MMLdefinition>
        <Name> tanh </Name>
        <description> La funzione tangente iperbolica.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property>...</property>
    </MMLdefinition>

C.2.8.10 sech

    <MMLdefinition>
        <Name> sech </Name>
        <description> La funzione secante iperbolica.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property>...</property>
    </MMLdefinition>

C.2.8.11 csch

    <MMLdefinition>
        <Name> csch </Name>
        <description> La funzione cosecante iperbolica.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property>...</property>
    </MMLdefinition>

C.2.8.12 coth

    <MMLdefinition>
        <Name> coth </Name>
        <description> La funzione cotangente iperbolica.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.3]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property>...</property>
    </MMLdefinition>

C.2.8.13 arcsin

    <MMLdefinition>
        <Name> arcsin </Name>
        <description> L'inversa della funzione seno.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.4]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> sin(arcsin(x)) = x </property>
        <property> arcsin(sin(x)) = x, "per x fra -Pi/2 e Pi/2" </property>
    </MMLdefinition>

C.2.8.14 arccos

    <MMLdefinition>
        <Name> arccos </Name>
        <description> L'inversa della funzione coseno.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.4]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> cos(arccos(x)) = x </property>
        <property> arccos(cos(x)) = x, "per x fra 0 e Pi" </property>
    </MMLdefinition>

C.2.8.15 arctan

    <MMLdefinition>
        <Name> arctan </Name>
        <description> L'inversa della funzione tangente.
            <Reference> M. Abramowitz e I. Stegun, Handbook of
                Mathematical Functions, [4.4]
            </Reference>
        </description>
        <functorclass> Unary, Function </functorclass>
        <signature> real -> real </signature>
        <signature> symbolic -> symbolic </signature>
        <property> tan(arctan(x)) = x </property>
        <property> arctan(tan(x)) = x, "per x fra -Pi/2 e Pi/2" </property>
    </MMLdefinition>

C.2.9 Statistica

C.2.9.1 mean

<MMLdefinition>
  <Name> mean </Name>
  <description> 
    Dati k argomenti scalari non specificati essi sono trattati come valori
    equiprobabili di una variabile aleatoria e la media è calcolata come:
      media( a1, a2, ...  an)   Somma( ai, i=1... n )/ n.
    (si veda la sez. 7.7 nelle tabelle e formule matematiche standard del CRC).
    Più in generale, il primo argomento è un simbolo X di tipo
    "variabile_aleatoria_discreta", questo è il primo momento della
    variabile aleatoria X ed è definito come
    E[ X ] = Somma( x*f(x), x in S ) 
    dove la probabilità che x = x_i è  P( x = x_i) = f(x_i).
    Gli argomenti sono o tutti dati, tutte variabili aleatorie discrete
    o tutte variabili aleatorie continue.
    Questo può essere generalizzato per distribuzioni continue e
    per k dimensioni seguendo le definizioni fornite nel riferimento:
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [7.1.2] e [7.7]
    </Reference>  
  </description>
  <MMLattribute>
    <name>type</name>
    <values> random_variable | continuous_random_variable | data </value>
    <default> data </default>
  </MMLattribute>
  <functorclass>Nary , Operator </functorclass>
  <signature>(scalar*) -> scalar</signature>
  <signature>(scalar(type=data)*) -> scalar</signature>
  <signature>(symbol(type=random_variable)*) -> scalar</signature>
  <signature>(symbol(type=continuous_random_variable)*) -> scalar</signature>
  <property> </property>
</MMLdefinition>

C.2.9.2 sdev

<MMLdefinition>
  <Name> sdev </Name>
  <description> 
    Questo rappresenta la variazione standard.
    Dati k argomenti scalari non specificati, essi sono trattati come valori
    equiprobabili di una variabile aleatoria e la "deviazione standard" è
    calcolata come la radice quadrata del secondo momento della media U.
      sdev( a1, a2, ...  an)^2  = E( (X - U)^2 ).
    Se il primo argomento è un simbolo X di tipo
    "variabile_aleatoria_discreta", allora tutti gli argomenti sono trattati
    come variabili aleatorie discrete, invece che dati, e il secondo momento
    della media è calcolato come
      Somma( ( x_i - U )^2 * f(x_i) , x_i  in S )
    come
    dove la probabilità che x = x_i è  P( x = x_i) = f(x_i).
    Gli argomenti sono o tutti dati, tutte variabili aleatorie discrete
    o tutte variabili aleatorie continue.
    Questo può essere generalizzato per distribuzioni continue e
    per k dimensioni seguendo le definizioni trovate in:
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [7.1.2] e [7.7]
    </Reference>  
  </description>
  <MMLattribute>
    <name>type</name>
    <values> random_variable | continuous_random_variable | data </value>
    <default> data </default>
  </MMLattribute>
  <functorclass>Nary , Operator </functorclass>
  <signature>(scalar*) -> scalar</signature>
  <signature>(scalar(type=data)*) -> scalar</signature>
  <signature>(symbol(type=discrete_random_variable)*) -> scalar</signature>
  <signature>(symbol(type=continuous_random_variable)*) -> scalar</signature>
  <property> </property>
</MMLdefinition>

C.2.9.3 variance

<MMLdefinition>
  <Name> variance </Name>
  <description> 
    Questo calcola il secondo momento centrato, noto anche come varianza.
    Dati k argomenti scalari non specificati essi sono trattati come valori
    equiprobabili di una variabile aleatoria e la "varianza" è
    calcolata come il secondo momento della media U.
      varianza( a1, a2, ...  an)  = E( (X - U)^2 ).
    Se il primo argomento è un simbolo X di tipo
    "variabile_aleatoria_discreta", allora tutti gli argomenti sono trattati
    come variabili aleatorie discrete, invece che dati e il secondo momento
    della media è calcolato come nella sez. [7.7] (v. rif. sotto).
    about the mean is computed as  in section [7.7] (see reference below.)
      Somma( ( x_i - U )^2 * f(x_i) , x_i  in S )
    come
    dove la probabilità che x = x_i è  P( x = x_i) = f(x_i) .
    Gli argomenti sono o tutti dati, tutte variabili aleatorie discrete
    o tutte variabili aleatorie continue.
    Questo si può generalizzare per distribuzioni continue e
    per k dimensioni seguendo le definizioni trovate in:
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [7.1.2] e [7.7]
    </Reference>  
  </description>
  <MMLattribute>
    <name>type</name>
    <values> random_variable | continuous_random_variable | data </value>
    <default> data </default>
  </MMLattribute>
  <functorclass>Nary , Operator </functorclass>
  <signature>(scalar*) -> scalar</signature>
  <signature>(scalar(type=data)*) -> scalar</signature>
  <signature>(symbol(type=discrete_random_variable)*) -> scalar</signature>
  <signature>(symbol(type=continuous_random_variable)*) -> scalar</signature>
</MMLdefinition>

C.2.9.4 median

<MMLdefinition>
  <Name> median </Name>
  <description> 
    Questo rappresenta la mediana di n dati.
    Se n =2k + 1  allora la moda è x_k.
    Se n = 2k allora la mediana è (x_k + x_(k+1)/2).
    (Si noti che tale descrizione suppone che i dati siano
     stati ordinati in modo ascendente.)
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996,  [7.7]
    </Reference>    
  </description>
  <functorclass>Nary , Operator</functorclass>
  <signature>(scalar*) -> scalar</signature>
</MMLdefinition>

C.2.9.5 mode

<MMLdefinition>
  <Name> mode </Name>
  <description> 
    Questo rappresenta la moda di n dati.
    La moda è il valore dei dati che occorre con
    la frequenza maggiore.
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996,  [7.7]
    </Reference>    
  </description>
  <functorclass>Nary , Operator</functorclass>
  <signature>(scalar*) -> scalar</signature>
</MMLdefinition>

C.2.9.6 moment

<MMLdefinition>
  <Name> moment </Name>
  <description> 
    Questo calcola il momento i-esimo di un insieme di dati, o di una
    variabile aleatoria.
    Dati k argomenti scalari di tipo non specificato, essi sono trattati
    come valori equiprobabili di una variabile aleatoria, e i "momenti" sono
    calcolati come il secondo momento della media U.
      momento( grado=i, scalare*)= E( X^i ).
    Se il primo argomento x1 è un simbolo X di tipo
    "variabile_aleatoria_discreta", allora tutti gli argomenti sono trattati
    come variabili aleatorie discrete, invece che dati e il momento i-esimo
    della media è calcolato come
      Somma( (x)^i * f(x) , x in S )
dove la probabilità che x = x_i è P( x = x_i) = f(x_i) .
    Gli argomenti sono o tutti dati, tutte variabili aleatorie discrete
    o tutte variabili aleatorie continue.
    Questo può essere generalizzato per distribuzioni continue e
    per k dimensioni seguendo le definizioni trovate in:
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [7.1.2]
    </Reference>  
  </description>
  <MMLattribute>
    <name>type</name>
    <values> random_variable | continuous_random_variable | data </value>
    <default> data </default>
  </MMLattribute>
  <functorclass>Nary , Operator </functorclass>
  <signature>(degree,scalar*) -> scalar</signature>
  <signature>(degree,scalar(type=data)*) -> scalar</signature>
  <signature>(degree,symbol(type=discrete_random_variable)*) -> scalar</signature>
  <signature>(degree, symbol(type=continuous_random_variable)*) -> scalar</signature>
</MMLdefinition>

C.2.10 Algebra lineare

C.2.10.1 vector

<MMLdefinition>
  <Name> vector </Name>
  <description> 
    Un vettore è una n-tupla ordinata di valori
    che rappresentano un elemento di uno spazio
    vettoriale ad n dimensioni. I "valori" sono tutti
    dello stesso anello, tipicamente reali o complessi.
    Possono essere numeri, simboli o espressioni algebriche
    generali. L'attributo type può essere usato per specificare
    il tipo di vettore rappresentato.
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [2.4]
    </Reference>
  </description>
  <MMLattribute>
    <name> type </name>
    <value>  real | complex | symbolic | anything </value>
    <default> real </default>
  </MMLattribute>
  <MMLattribute>
    <name> other </name>
    <value>  row | column </value>
    <default> row </default>
  </MMLattribute>
  <functorclass> constructor , N-ary </functorclass>
  <signature> 
    ((cn|ci|apply)*) -> vector(type=real) 
  </signature>
  <signature> 
    [type=vectortype]((cn|ci|apply)*) -> vector(type=vectortype)
  </signature>
  <!-- Si noti che c'è una necessità notazionale per esprimere una sequenza
       v1, v2, ... vn con un valore non esplicito di n. Inoltre, nella
       seguente proprietà, dovrebbe essere chiarito che b, v1 e v2 sono
       tutti elementi dello stesso anello. -->
  <property>  <!-- moltiplicazione scalare-->
      <apply><forall/>
        <bvar><ci>b</ci></bvar>
        <bvar><ci>v1</ci></bvar>
        <bvar><ci>v2</ci></bvar>
        <reln>
          <apply><times/>
            <ci>ci>b</ci>
            <vector><ci>ci>v1</ci><ci>ci>v2</ci></vector>
            </apply>
            <vector>
              <apply><ci>b</ci><ci>v1</ci></apply>
              <apply><ci>b</ci><ci>v2</ci></apply>
            </vector>
        </reln>
      </apply>
  </property>
  <property> somma vettoriale </property>
  <property> distribuitiva sugli scalari</property>
  <property> associatività.</property>
  <property> Matrice * vettore colonna </property>
  <property> vettore riga * Matrice </property>
  </property>
</MMLdefinition>

C.2.10.2 matrix

<MMLdefinition>
  <Name> matrix </Name>
  <description>
    Questo è il costruttore per una matrice. La matrice è
    costruita a partire da righe di matrice. Il tipo e le
    proprietà determinano l'interazione normale con vettori
    e scalari.
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [2.5.1]
    </Reference>
  </description>
  <MMLattribute>
    <name>type</name>
    <value>real | complex | integer | symbolic | anything </value>
    <default> real </default>
  </MMLattribute>
  <functorclass>constructor , N-ary </functorclass>
  <signature>(matrixrow*) -> matrix</signature>
  <signature>
    [type=matrixtype](matrixrow*) -> 
       matrix(type=matrixtype)</signature>
  <property>moltiplicazione scalare </property>
  <property>Matrice*vettore colonna</property>
  <property>Addizione</property>
  <property>Matrice*Matrice</property>
</MMLdefinition>

C.2.10.3 matrixrow

<MMLdefinition>
  <Name> matrixrow </Name>
  <description>
    Questo è un costruttore per descrivere le righe di una matrice.
    Questo occorre solo all'interno di una matrice. Il suo "tipo"
    è determinato dall'elemento matrix che lo contiene.
  </description>
  <functorclass>constructor , N-ary</functorclass>
  <signature>(cn|ci|apply)->matrixrow </signature>
</MMLdefinition>

C.2.10.4 determinant

<MMLdefinition>
  <Name>determinant</Name>
  <description>Il "determinante" di una matrice.
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [2.5.4]
    </Reference>
  </description>
  <functorclass>Unary, operator</functorclass>
  <signature>(matrix)-> scalar </signature>
  </MMLdefinition>

C.2.10.5 transpose

<MMLdefinition>
  <Name> transpose </Name>
  <description>La trasposta di una matrice o di un vettore.
    <Reference> CRC Standard Mathematical Tables and Formulae, 
      editor: Dan Zwillinger, CRC Press Inc., 1996, [2.4] and [2.5.1]
    </Reference>
  </description>
  <functorclass>Unary, Operator</functorclass>
  <signature>(vector)->vector(other=row)</signature>
  <signature>[other=column](vector)->vector(other=row)</signature>
  <signature>[other=row](vector)->vector(other=column)</signature>
  <signature>(matrix)->matrix</signature>
  <property>transpose(transpose(A))= A</property>
  <property>transpose(transpose(V))= V</property>
</MMLdefinition>

C.2.10.6 selector

<MMLdefinition>
  <Name> selector </Name>
  <description>
    L'operatore usato per estrarre sotto-oggetti da vettori, matrici,
    righe di matrici e liste.
    Agli elementi si accede fornendo un elemento indice per ogni dimensione.
    Per le matrici, le sottomatrici sono selezionate fornendo alcuni
    indici in più. Per una matrice A e un vettore colonna V:
     select( i,j , A ) è l'elemento  i,j-esimo di A.
     select(i , A )  è la riga di matrice formata dalla riga i-esima di A.
     select( i , V ) è l'elemento i-esimo di V.
     select( V ) è la sequenza di tutti gli elementi di V.
     select(A) è la sequenza di tutti gli elementi di A estratti riga per riga.
     select(i,L) è l'eleemnto i-esimo di una lista.
     select(L) è la sequenza di tutti gli elementi di una lista.
  </description>
  <functorclass>N-ary, operator)</functorclass>
  <signature>(scalar,scalar,matrix)->scalar</signature>
  <signature>(scalar,matrix)->matrixrow</signature>
  <signature>(matrix)->scalar* </property>
  <signature>(scalar,(vector|list|matrixrow))->scalar</signature>
  <signature>(vector|list|matrixrow)->scalar*</signature>
  <property>
    Forall( 
       bvar(A(type=matrix)),bvar(V(type=vector)), 
       select(A) = select(V)
     )
  </property>
  <property>Per ogni vettore V, V = vector(select(V))</property>
</MMLdefinition>

Descrizione sommaria: Linguaggio di marcatura matematica (MathML) Versione 2.0
Precedente: B Grammatica di convalida della marcatura di contenuto
Successivo: D Dizionario degli operatori (Non normativa)