$ % LAST UPDATE: 18-Abr-2024 \def\start{&&} \def\more{\\&&} \def\sse#1#2{{#1}\subseteq{#2}} \def\iso{\cong} \newenvironment{lcbr}{\left\{\begin{array}{l}}{\end{array}\right.} \def\ana#1{(\hskip -1ex[#1]\hskip -1ex )} \def\cata#1{(\hskip -1.1pt[\hskip 0.1pt #1 \hskip 0.1pt]\hskip -1.1pt)} \def\Seq#1{{#1}^{\star}} \def\fB{\fun B} \def\mcond#1#2#3{#1 \rightarrow #2\;,\;#3} \newenvironment{lcbr}{\left\{\begin{array}{l}}{\end{array}\right.} \def\bang{{!}} \def\Nat{\mathbb{N}} \def\N{\Nat} \def\atmost{\subseteq} \def\alt#1#2{[#1,#2]} \def\comp{\mathbin\cdot} \def\conj#1#2{\mathopen{\langle} #1, #2\mathclose{\rangle}} \def\conv#1{#1^\circ} \def\crflx#1{\Phi_{#1}} \def\dom#1{\delta {#1}} \def\from{\leftarrow} \def\fun#1{\mathsf{#1}} \def\i#1{\mathit{i}_{#1}} \def\inT{\mathsf{in}} \def\outT{\mathsf{out}} \def\implied{\Leftarrow} \def\implies{\Rightarrow} \def\just#1#2{\\& \mathopen{\{}~\mbox{#2}~\mathclose{\}}\\&&} \def\ker#1{\mathbf{ker}\ {#1}} \def\img#1{\mathbf{img}\ {#1}} \def\kons#1{\underline{#1}} \def\larrow#1#2#3{#3\ \xleftarrow{#2}\ #1} \def\ldiv{\mathbin{/}} \def\p#1{\pi_{#1}} \def\plus{\mathbin{\dagger}} \def\rarrow#1#2#3{#1\ \xrightarrow{#2}\ #3} \def\rcb#1#2#3#4{\mathopen{\langle}#1 #2 : #3 : #4\mathclose{\rangle}} \def\rdiv{\mathbin{\setminus}} \def\sep{\rule{15em}{0.3pt}} \def\shrunkby{\mathbin{\upharpoonright}} \def\syd#1#2{\frac{#1}{#2}} \def\to{\rightarrow} \def\trans#1{\overline{#1}} \def\scata#1{⦅\, #1 \,⦆} \def\sep{\rule{15em}{0.3pt}} %-------- \def\Varid#1{\mathbin{#1}} \def\ensuremath#1{#1} \def\Conid#1{\mathbin{#1}} $
Q2.1 - Pretende-se especificar o metro de Tóquio onde (cf. figura) há várias linhas ($L$) representadas com cores diferentes, cujas paragens ($P$) estão numeradas sequencialmente e onde as estações ($E$) podem incluir paragens de linhas diferentes $-\!-$ e.g. a estação $\mathsf{Otemachi}$, que tem as paragens $\fbox{$\frac C {11}$}$, $\fbox{$\frac M {18}$}$, etc $-\!-$ permitindo aos viajantes mudar de linha.

Sabendo-se que cada paragem está sempre associada a uma e uma só estação, definiu-se o modelo simplificado

que a cada paragem associa a respectiva linha, número e estação. Por exemplo, sendo $p$ a paragem $\fbox{$\frac M {18}$}$ da figura, ter-se-á
$\begin{array}{l}st\ p = Otemachi\\\mathit{ln}\ p = M\\nr\ p = 18\end{array}$.
Claramente, o sistema de numeração das paragens das linhas necessita do seguinte invariante:
Se $n+1$ é o número de uma paragem de uma dada linha, então há outra paragem da mesma linha com o número $n$.
Qual das seguintes formulações desse invariante escolheria,
\begin{eqnarray} && \frac{nr}{succ \cdot nr} \subseteq \frac{ln}{ln} \label{eq:181128a} \\&& \nonumber\\&& \frac{nr}{succ} \subseteq nr \cdot \frac{ln}{ln} \end{eqnarray}onde $succ\ n = n+1$ é a função sucessor em $\Nat$?
Converta cada "quadrado mágico" na expressão lógica equivalente e decida, justificando.
$\Box$
Q2.2 - Foi feito ao chatGPT o seguinte pedido:
I would like to have an Alloy model for this simple problem:
(a) a bicycle always has two wheels, the front and the rear wheel;
(b) these wheels can never be the same;
(c) no two bicycles have a wheel in common.
A resposta foi o seguinte modelo em Alloy, que não revelou qualquer erro:
// Signature for a Wheel
sig Wheel {}
// Each Bicycle has exactly two wheels: one front and one rear
sig Bicycle {
front: one Wheel,
rear: one Wheel
} {
// (b) The front and rear wheels are distinct
front != rear
}
// (c) No two bicycles share a wheel
fact NoSharedWheels {
all disj b1, b2: Bicycle |
no (b1.front + b1.rear) & (b2.front + b2.rear)
}
// A small scope example
run {} for 3 Bicycle, 6 Wheel
Analise o modelo Alloy proposto e reescreva-o na notação pointfree (e diagramática) estudada nesta disciplina. Avalie a sua qualidade: o que está errado? o que teria feito diferente? Justifique a sua resposta.
Q2.3 - A figura representa a estrutura sintática de uma frase escrita em português:

Qual o seu significado formal? Escreva-o sob a forma de um "quadrado mágico",
\begin{eqnarray} R\ \cdot S \subseteq P \cdot Q \end{eqnarray}em que só pode usar a relação
$\larrow {Pessoa} G {Pessoa}$
(onde $G$ abrevia gosta de) e a função constante
$\larrow {1} {\kons{Maria}} {Pessoa}$.
Q2.4 - A figura representa um blockchain elementar com cinco blocos. Cada bloco tem o seu $hash$ e o hash do bloco anterior ($\def\Phash{\mathit{Phash}}\Phash$), caso exista.

Identifique as relações que são:
Q2.5 - Represente sob a forma de um diagrama com os tipos $Block$ e $\def\Word{\mathit{Word}}\Word$ o modelo relacional que o diagrama da questão anterior sugere e acrescente-lhe os invariantes seguintes:
Q2.6 - $\tiny\sf\fbox{Alloy for fun}$ Complete o modelo Alloy abaixo e verifique-o na plataforma Alloy for fun:
sig Block {
Next : lone Block,
hash : one Word,
Phash : lone Word
}
sig Word {}
fact {
.....
}
run { # Next = 4} for 5 Block, 5 Word