Lazi

univocal (langage de calcul)

Contexte

Il est nommé "univocal" car le seul choix dans la manière de calculer est dans le nombre de calcul élémentaire à exécuter.

Définition

  1. règle "if 1b" : $F[ if 1b ] +f x +f y se calcule en x
  2. règle "if 0b" : $F[ if 0b ] +f x +f y se calcule en y
  3. règle "distribute" : $F[distribute] +f x +f y +f z se calcule en (x +f z) +f (y +f z)
  4. règle "if x" : si c est un calcul élémentaire univocal, si calculate univocal c x = y, alors $F[if] +f x +f z +f t se calcule en $F[if] +f y +f z +f t
  5. règle "calcul de la fonction" : si c est un calcul élémentaire univocal, si calculate univocal c x = y, alors x +f z se calcule en y +f z

À une formule donnée, si un calcul univocal s'applique, la règle et ses éventuels paramètres sont entièrement déterminés par la formule. On représentera un calcul élémentaire par une liste vide (la représentation de la formule globale en SFP) pour des raisons de compatibilité avec le calcul loose.