Nel contesto della nostra indagine sugli automi di heap , vorrei dimostrare che una particolare variante non può accettare linguaggi non sensibili al contesto. Poiché non abbiamo un modello grammaticale equivalente, ho bisogno di una prova che usi solo automi; pertanto, devo dimostrare che gli automi di heap possono essere simulati da LBA (o un modello equivalente).
Mi aspetto che la prova funzioni in modo simile alla dimostrazione che gli automi pushdown accettano un sottoinsieme di linguaggi sensibili al contesto. Tuttavia, tutte le prove che conosco funzionano
- usando le grammatiche - qui il fatto è ovvio per definizione - oppure
- sono inconsapevolmente vaghi (ad es. qui ).
Il mio problema è che un PDA (resp. HA) può contenere cicli di transizioni che possono scrivere simboli nello stack (resp. Heap). Un LBA non può simulare iterazioni arbitrarie di tali loop. Dalla gerarchia di Chomsky ottenuta con le grammatiche, lo sappiamo
- ogni linguaggio privo di contesto ha un PDA -cycle-free o
- l'LBA di simulazione può impedire l'iterazione di cicli troppo spesso.
Intuitivamente, questo è chiaro: tali cicli scrivono simboli indipendentemente dall'input, quindi il contenuto dello stack (heap) contiene solo una quantità di informazioni lineari nella lunghezza del ciclo (ignorando i cicli sovrapposti per ora). Inoltre, non hai modo di liberarti di nuovo (se necessario) oltre all'utilizzo di un altro ciclo . In sostanza, tali cicli non contribuiscono a gestire l'input se ripetuti più volte, quindi non sono necessari.
Come si può mettere questo argomento in modo rigoroso / formale, specialmente considerando la sovrapposizione di -cycles?