Genial, como sempre, Eduardo!

Pra facilitar o uso, achei só que valeria a pena mencionar que:
  *smallmatrix* exige o pacote [amsmath]
  *mapsfromchar* exige o pacote [stmaryrd]

Abraços,
JM

2011/11/12 Eduardo Ochs <[email protected]>:
> ...pra substituição eu uso uma convenção que não é comum, mas que acho
> que é bem clara: E[x:=t], e quando preciso de substituição simultânea
> eu em geral ponho os ":=" empilhados, cada um numa linha. O código em
> LaTeX é:
>
>  \def\sm#1{\begin{smallmatrix}#1\end{smallmatrix}}
>  \def\subst#1{\left[\sm{#1}\right]}
>
>  Exemplo: $A\subst{ x := t \\ y := u}$
>
> Em algumas situações é conveniente pôr o bloquinho de substituição
> antes da expressão, e aí dá pra usar algo como:
>
>  Exemplo: $\subst{ t =: x \\ u =: y } A$
>
> invertendo a ordem de tudo pra manter as variáveis mais perto da
> expressão que os termos, e usando "=:" ao invés de ":=". Se você
> preferir inverter a direção do \mapsto o truque é este - que não é
> totalmente óbvio:
>
>  \def\mapsot{\leftarrow\mapsfromchar}
>
> Abraços,
>  Eduardo Ochs
>  [email protected]
>  http://angg.twu.net/
>
>
> 2011/11/12 Rodrigo Freire <[email protected]>
>
>> Entendo que no contexto de programação essa ambiguidade é inadmissível e
>> isso resolve sim, você está certo. Mas eu gostaria de algo mais humano,
>> para apresentar nos textos básicos sem transformá-los em sopa de letrinhas.
>>
>> Abraço
>> Rodrigo
>>
>>
>>
>>
>>
>> 2011/11/12 Joao Marcos <[email protected]>
>>
>> > A linha de investigação que me parece mais próxima de resolver este
>> > problema específico é a dos *cálculos com substituição explícita*, que
>> > aparecem em alguns ramos de estudo da teoria da reescrita e do cálculo
>> > lambda.
>> > http://en.wikipedia.org/wiki/Explicit_substitution
>> >
>> > Bastarão?
>> > JM
>> >
>> >
>> > 2011/11/12 Rodrigo Freire <[email protected]>:
>> > > Olá João.
>> > >
>> > >
>> > >> Mais grave me parece o problema anterior de usarmos a notação E[t/x],
>> > >> usando a convenção anglófona, para expressar a substituição da
>> > >> variável x pelo termo t na expressão E.  Neste caso a leitura em Bom
>> > >> Inglês é "substitute t for x in E".  No entanto, uma alternativa de
>> > >> leitura mais próxima do uso natural das preposições em português, e em
>> > >> muitas outras línguas naturais, seria "substitute x by t in E", ou
>> > >> seja, "substituir x por t em E" ou "a expressão E, com x substituído
>> > >> por t".  Notem que esta história toda fica particularmente confusa
>> > >> quando o termo t é ele próprio uma variável y: qual a leitura de
>> > >> E[y/x], "substitute y for x" ou "substitute y by x" --- são duas
>> > >> substituições completamente diferentes!  Para evitar este tipo de
>> > >> confusão e imprimir um caráter de direcionalidade à substituição,
>> > >> tenho preferido escrever E[x \mapsto t], que revela justamente x como
>> > >> parte do domínio da função de substituição e t como parte de seu
>> > >> contra-domínio, e ainda mostra a substituição como um tipo de manobra
>> > >> _sintática_ que fazemos em uma linguagem de programação (ou na teoria
>> > >> da reescrita).  Mas não julgo que esta convenção E[x \mapsto t] seja
>> > >> "melhor" do que outras; ela é apenas vantajosa em não permitir que eu
>> > >> erre ao me confundir com o significado de "substitute t for x", em
>> > >> inglês.
>> > >
>> > >
>> > > Boa observação.
>> > >
>> > > Vou explicar um pouco o que eu acho mais confuso com relação a
>> > substituição.
>> > >
>> > > Suponha que vamos fazer a substituição em uma expressão E. Depois da
>> > > substituição, obtemos a expressão E[t/x].
>> > > Em muitas situações em que estamos lidando com uma fórmula específica,
>> > não
>> > > escrevemos E e depois E[t/x], mas apenas a expressão obtida.
>> > > Por exemplo, a expressão inicial pode ser E: P(x,y) & F(x)=z. E[t/x} é
>> > > P(t,y) & F(t)=z.
>> > >
>> > > O problema é que, apenas escrever a expressão final não indica qual o E
>> > > inicial nem qual foi a substituição: ela pode, em geral, ser obtida de
>> > > diferentes expressões por substituição. No exemplo acima, se temos
>> > diante de
>> > > nossos olhos apenas P(t,y) & F(t)=z, não temos indicação do que foi
>> > feito e
>> > > como essa expressão foi obtida. Por exemplo, pode ter sido obtida de
>> > P(x,y)
>> > > & w=z pela substituição de x por t e w por F(t), entre (infinitas)
>> outras
>> > > possibilidades.
>> > >
>> > >
>> > > Se estamos em um contexto em que duas operações são realizadas na
>> > expressão
>> > > (muito comum em lógica) e vemos na nossa frente apenas a expressão
>> final
>> > > (também é muito comum em textos de lógica encontrar passagens puladas)
>> > > ficamos perdidos facilmente. Com a expressão final em nossa frente não
>> é
>> > > claro quais foram as operações realizadas nem a ordem em que as
>> operações
>> > > foram realizadas.
>> > >
>> > >
>> > > Para eliminar isso, só com uma notação que indique a expressão inicial
>> e
>> > as
>> > > operações em uma ordem. Em matemática há uma notação standard para
>> > > composição de funções, mas para muitas dessas operações a notação
>> > standard
>> > > não é funcional.
>> > >
>> > > Isso também tem o custo de tornar a notação mais carregada, o que
>> também
>> > não
>> > > é muito desejável...
>> > >
>> > > Abraço
>> > > Rodrigo
>> > >
>> > >
>> > >
>> >
>> >
>> >
>> > --
>> > http://sequiturquodlibet.googlepages.com/
>> >
>> _______________________________________________
>> Logica-l mailing list
>> [email protected]
>> http://www.dimap.ufrn.br/cgi-bin/mailman/listinfo/logica-l
>>
> _______________________________________________
> Logica-l mailing list
> [email protected]
> http://www.dimap.ufrn.br/cgi-bin/mailman/listinfo/logica-l
>



-- 
http://sequiturquodlibet.googlepages.com/
_______________________________________________
Logica-l mailing list
[email protected]
http://www.dimap.ufrn.br/cgi-bin/mailman/listinfo/logica-l

Responder a