Anar al contingut

Reescritura

De L'Enciclopèdia, la wikipedia en valencià

En les matemàtiques, ciències de la computació i la llògica, la reescritura inclou una àmplia gama de métodos per a reemplaçar subtérminos d'una fòrmula en atres térmens. Tals métodos poden conseguir-se per sistemes de reescritura (també coneguts com a motors de reescritura o sistemes de reducció).[1][2] En la seua forma més bàsica, consistixen en un conjunt d'objectes, ademés de relacions representant funcions per a transformar tals objectes.

Pot ser que reescritura siga no determinista. Pot ser que una regla per a reescriure un terme puga aplicar-se de moltes maneres diferents a dit terme, o que puguen aplicar-se més d'una regla. Els sistemes de reescritura no proveïxen un algoritme per a canviar un terme per un atre, sino un conjunt de possibles aplicacions de regles. No obstant, quan es combinen en un algoritme apropiat, els sistemes de reescritura poden vore's com programes informàtics, i varis programes per a demostrar teoremes[3] i llenguages de programació declarativa es basen en la reescritura de térmens.[4][5]

Eixemples

Llògica

En la llògica, el procediment per a obtindre la forma normal conjuntiva (FNC) d'una fòrmula es pot implementar com un sistema de reescritura.[6] Les regles per a un eixemple de tal sistema serien:

¬¬A→A (eliminació de doble negació)
¬(A∧B)→¬A∨¬B (Lleis de De Morgan)
¬(A∨B)→¬A∧¬B
(A∧B)∨C→(A∨C)∧(B∨C) (distributividad)
A∨(B∧C)→(A∨B)∧(A∨C),[nota 1]


a on el símbol (→) indica que una expressió que coincidixca en el costat esquerre de la regla es pot reescriure com una formada pel costat dret, i a on cada símbol denota una subexpresión. En tal sistema, cada regla s'elegix de per a que el costat esquerre siga equivalent al costat dret i, en conseqüència, quan el costat esquerre coincidixca en una subexpresión, realisar una reescritura d'eixa subexpresión de l'esquerra al dret es manté la consistència i el valor llògics de tota l'expressió.

Aritmètica

Els sistemes de reescritura de térmens es poden utilisar per a calcular operacions aritmètiques entre número natural. Per a fer açò, cada u de tals números deu codificar-se com un terme. La codificació més senzilla és l'utilisada en els axioma de Peano, basada en la constant 0 (zero) i la funció successora S. Per eixemple, els números 0, 1, 2 i 3 estan representats pels térmens 0, S(0), S(S(0)) i S(S(S(0))), respectivament. El següent terme sistema de reescritura es pot usar per a calcular la suma i el producte de número natural donats.[7]

A+0→A(1),A+S(B)→S(A+B)(2),A⋅0→0(3),A⋅S(B)→A+(A⋅B)(4).

Per eixemple, el càlcul que 2+2 resolta en 4 es pot duplicar per reescritura de terme de la següent manera:

S(S(0))+S(S(0)) →(2) S(S(S(0))+S(0)) →(2) S(S(S(S(0))+0)) →(1) S(S(S(S(0)))),

a on el número de la regla es dona damunt de la flecha de reescritura a (el símbol →).

Per un atre eixemple, el càlcul de 2⋅2 es fa aixina:

S(S(0))⋅S(S(0)) →(4) S(S(0))+S(S(0))⋅S(0) →(4) S(S(0))+S(S(0))+S(S(0))⋅0 →(3) S(S(0))+S(S(0))+0 →(1) S(S(0))+S(S(0)) →s.a. S(S(S(S(0)))),

a on l'últim pas utilisa el càlcul de l'eixemple anterior.

Llingüística

En la llingüística, les regles d'estructura de frases, també cridades regles de reescritura, s'utilisen en alguns sistemes de gramàtica generativa,[8] com un mig per a generar les oracions gramaticalmente correctes d'un idioma. Tal regla típicament seguix la forma A→X, a on A és una etiqueta de categoria sintàctica, com un sintagma nominal o una oració, i X és una seqüència de tals etiquetes o morfemes, expressant el fet que A pot ser reemplaçada per X en generar l'estructura constitutiva d'una oració. Per eixemple, la regla O→SN SV significa que una oració (O) pot consistir en una sintagma nominal (SN) seguida d'una sintagma verbal (SV); atres regles especificaran en quins subconstituyentes pot consistir un sintagma nominal o verbal, i aixina successivament.

Notes

  1. ↑ Esta variant de la regla anterior és necessari ya que la llei conmutativa A∨B = B∨A no pot convertir-se en una regla de reescritura. Una regla com A∨B → B∨A faria que el sistema de reescritura siga interminable.

Referències

  1. ↑ Joseph Goguen "Proving and Rewriting" International Conference on Algebraic and Logic Programming, 1990 Nancy, France pp 1-24
  2. ↑ (2014).«The Kansas University rewrite engine».Journal of Functional Programming.24(4)
    434–473.ISSN 0956-7968.doi:10.1017/S0956796814000185.Consultat el 2019-02-12.
  3. ↑ (1992).«The term rewriting approach to automated theorem proving».The Journal of Logic Programming.14(1–2)
    71–99.doi:10.1016/0743-1066(92)90047-7.
  4. ↑ (1998).«Theory and practice of constraint handling rules».The Journal of Logic Programming.37(1–3)
    95–138.doi:10.1016/S0743-1066(98)10005-5.
  5. ↑ (2002).«Maude: Specification and programming in rewriting logic».Theoretical Computer Science.285(2)
    187–243.doi:10.1016/S0304-3975(01)00359-0.
  6. ↑ Kim Marriott; Peter J. Stuckey, {{{nom2}}} (1998). Programming with Constraints: An Introduction, MIT Press, pp. 436–. ISBN 978-0-262-13341-8.
  7. ↑ Jürgen Avenhaus; Klaus Madlener, {{{nom2}}} (1990). «Term Rewriting and Equational Reasoning», R.B. Banerji (ed.). Formal Techniques in Artificial Intelligence, Elsevier, pp. 1–43. Here: Example in sect.4.1, p.24.
  8. ↑ Robert Freidin (1992). Foundations of Generative Syntax, MIT Press. ISBN 978-0-262-06144-5.