asdfgdfme
asdfgdfme
Untitled
19 posts
Don't wanna be here? Send us removal request.
asdfgdfme · 7 years ago
Text
Lí superficialmente sobre vários assuntos e formei pontos de vista e algumas idéias , talvez usei algumas palavras com significados que diferem um pouco do convencional , a parte sobre sistemas formais talvez seja mais uma descrição de dúvidas , sobre algumas idéias já postei mais detalhadamente , em algumas partes me referí a coisas descritas em outra parte
As coisas: Acho que em algum nível coisas físicas , abstratas , conceitos , eventos , como uma partícula percorrer certo percurso , verdades matemáticas , e coisas do além , existem da mesma forma , quando falo "coisas" pode ser qualquer coisa Coisas abstratas se manifestam no mundo físico (e outros) , acho isso semelhante a quando dizem que há certa frequência presente em uma imagem , ela não está em um ponto específico , mas é real , em outro referencial pode estar em ponto específico Será que há realmente coisas mais primitivas que outras ou é questão de ponto de vista ? Será que as coisas relacionadas à vida consciente não são na verdade primitivas ? Tenho uma forma possível de ver as coisas em que todas as coisas são sensações , em princípio não estão associadas a um ser que as vive , então um ser poderia ser o conjunto de sensações de sua vida , sensações relacionam outras sensações entre sí de maneiras que provavelmente não entendemos , então na verdade um ser seria uma sensação que relaciona entre sí as sensações de sua vida , um objeto ou outra coisa seria uma sensação que liga entre sí as sensações de interação com ele , relacionada ao impacto de sua existência no conjunto de sensações existentes , quando uma experiência visual envolve a cor azul isso seria um relacionamento da sensação que é a experiência com uma hipotética sensação de azul puro não associada a ser específico , e a experiência visual liga entre sí a sensação do azul puro com outras sensações envolvidas na experiência visual , mas essa idéia de azul puro parece implicar que é algo separado do restante das coisas , mas provavelmente depende de suas ligações com outras sensações Algumas coisas podem ser vistas como processos , parte de processos ou subprocessos , por exemplo , os caracteres usados em um idioma , mas isto pode ser visto como descrição de parte das ligações entre e com outras coisas feitas por eles Há a idéia de uma coisa se manifestar em outra , como o número dez se manifestar em um cacho com dez bananas , talvez o número dez não exista sem suas manifestações , e talvez possa ser considerado uma ligação entre elas Talvez assim como se diz "um carrinho de plástico" podería-se dizer "um dez de banana"
Realidade última: (só hipóteses , não tenho certeza de nada) Não sei se seria o conjunto de todas as coisas ou algo que relaciona , liga , entre sí todas as coisas , não sei se deveria considerar a realidade última como uma coisa , é algo único , acho que é exceção para muitas regras , por exemplo , não tem arbitrariedade mas é algo , não sei se tem sentido dizer "é algo" se a idéia de sua não existência na verdade não tem sentido , é uma extrapolação na nossa mente que tem a capacidade ou imperfeição de representações para as quais não há algo que representam , parece deselegante se todas as outras coisas estão em uma mesma categoria haver este algo em outra , mas qualquer coisa que se diga pode ser visto como sendo dito sobre a realidade última , parece que isto de alguma forma sugere novamente que as afirmações que podem ser feitas são relativas a uma mente ou tipo de mente específica , mas também se todas as coisas estão ligadas entre sí estas mentes e afirações possíveis também estariam , enfim , pode-se especular mais Coisas definidas com alguma finalidade , como símbolos , existem de alguma forma , por exemplo como processos na sociedade , no grupo , ou na vida de quem que os usa
Relacionamento entre coisas: A idéia intuitiva de relacinamento entre as coisas e entre um conjunto de coisas , não sei se deveria tentar encontrar uma descrição mais precisa Acho que um conjunto de relacionamentos determina um relacionamento , como uma união Acho que existe a possibilidade de identificar subrelacionamentos de um relacionamento Pode ser que só tenha sentido relativamente a uma forma de representar as coisas , uma mente ou tipo de mente Se relacionamentos são reais , são coisas , pode-se especular se todas as coisas relacionam outras coisas entre sí , ou se há hierarquia Certos relacionamentos considerados óbvios , como a possibilidade de colocar certas coisas em certa situação relativa , o que valeria para quaisquer outras coisas ou quaisquer outras coisas do mesmo tipo , intuitivamente não são relacionamentos , não dizem nada , considerar ou não como relacionamentos é outra questão , mas são úteis para descrever representações e vou me referir a eles como relacionamentos
Capacidades e conceitos primitivos: Coisas como: idéia de que pode haver algo em comum entre várias coisas , e que se pode diferenciar se há outro ou o mesmo algo em comum entre outras coisas , que pode haver algo em comum em situações relativas entre coisas , e que se pode identificar quando é o mesmo algo em comum ou outro entre outras coisas , identificar , no sentido de poder reconhecer e não necessáriamente descrever , o algo em comum independente de elementos específicos , capacidade de reconhecer combinações de conceitos em coisas e situações , reconhecer os algo em comum que já se conhece à partir de outras coisas e situações combinados de várias formas em coisas e situações , talvez um mesmo ocorrendo várias vezes , reconhecer quando outros algo em comum ocorrem combinados da mesma forma ou forma semelhante que esta , isto também sendo algo em comum , e além de reconhecer combinações assim também a capacidade de imaginar ou criar combinações , criar conceitos novos à partir de combinações dos conceitos conhecidos Definições formais fornecem peças que podem ser combinadas , mas a capacidade de combinar e relacionar através de combinações é primitiva Nas formas de combinar conceitos para obter outros pode-se identificar aspectos em comum , aspectos deste tipo são coisas relacionadas entre sí , estes relacionamentos provavelmente são primitivos Certos algo em comum podem ser coisas primitivas Coisas em comum entre coisas não primitivas podem ser ou não primitivas Há uma delimitação entre coisas primitivas e coisas não primitivas ? Pode-se identificar o papel de capacidades primitivas em um conceito ? Quando algo não é primitivo ? Acho que é possível identificar quando um conceito foi obtido usando a capacidade primitiva de combinar conceitos para obter outros Talvez as formas possíveis de combinar conceitos para obter outros seja limitada não só pela mente humana , mas por este mundo físico , o cérebro é físico , isto limitaria a capacidade de um mecanismo enumerador de conceitos compostos Acho que sempre que há iteração , ou um conceito envolve a colocação de coisas de certa forma relativa onde poderia haver outras nesta situação relativa , ou estas em outra situação relativa , isto são capacidades primitivas , e o elemento obtido não seria primitivo Criar diagramas envolve capacidades primitivas , mesmo que o tipo de elementos combinados em um tipo de diagrama e o tipo de combinações tenha sido descrito através da capacidade primitiva de combinar conceitos primitivos , mesmo que alguns aspectos das capacidades primitivas tenham sido identificadas e recebido um nome , sendo facilmente identificávies , a criação de um diagrama envolve capacidades primitivas Uma descrição das articulações possíveis de capacidades primitivas envolveria capacidades primitivas , seria como descrever elas em função delas próprias Descrição de um conjunto de coisas em função delas próprias corresponde a relacionamento entre estas coisas A capacidade de reconhecer certos relacionamentos entre coisas primitivas é primitiva ou utiliza capacidades primitivas A idéia de que há várias coisas Há situações que só podem ser ocupadas por uma Se uma ocupa a situação , qualquer outra não ocupa Portanto a idéia de mutuamente exclusivo Relacionado com isso , a idéia de "não" A idéia de "não" talvez pode ser descrita como qualquer procura daquilo a que se aplica o "não é o caso" continua indefinidamente sem mudar o estado inicial que justificaria a continuação da procura , e a idéia de "não faça isto" como "interrompa qualquer processo que saiba que leva a isto" , interromper um processo sendo uma capacidade primitiva , não sei se descrições deste tipo são a idéia completa do significado de "não" , ou se "não" é um conceito e capacidade primitiva que pode ser relacionado com outros em particular através de descrições deste tipo , um subconjunto destes relacionamentos identificando parcialmente o que é "não"
Representação: Uma estrutura usada para representar algo Ou seja , provavelmente tem interpretação Provavelmente há um conjunto de significados simultaneos possíveis para suas partes , ou seja , funções que levam parte em significado , a não ser que estes significados estejam totalmente definidos Mapa parcial da realidade
Elementos usados em representações: Eles , ou subconjuntos deles , tem relacionamento com cada representação em um esquema de representação que os usa Provavelmente há em cada representação várias ocorrências de vários deles Ocorrências ligadas de alguma forma , que depende do esquema de representação Se um elemento tem um conjunto de ocorrências em uma representação , isto é um relacionamento único dele com a representação , mesmo que sejam várias ocorrências Talvez em elguns casos possa inclusive ser possível uma tradução para outro esquema de representação em que este conjunto de ocorrências corresponda a uma só , ou em número diferente Se uma representação depende de um elemento isto pode ser visto como alguma forma de ocorrência dele na representação , em alguns casos seria mais naturalmente visto como certo número de ocorrências Os elementos usados em uma representação estão relacionados pela representação , parece estranho considerar relacionamento entre elementos a possibilidade de colocar ocorrências deles em certa situação relativa , não sei se tem sentido supor que não seria possível , mas considerar relacionamentos deste tipo é conveniente aquí , estes relacionamentos entre elementos usados para representar determinados por representações provavelmente correspondem a relacionamentos entre significados destes elementos (eles mesmos , não suas ocorrências) , significados fixos , independentes de representação Para descrever coisas de qualquer tamanho à partir de um número finito de elementos é preciso combinações , combinar eles de alguma forma em cada representação Como provavelmente há infinitas representações possíveis , um esquema de representações físicas exige a possibilidade de multiplas ocorrências destes elementos , vendo cada representação simplesmente como um relacionamento entre os elementos usados (como descreví) intuitivamente produz a imagem deles colocados de determinada forma relativamente uns aos outros , ou eles fixos e certo "fluido" fazendo a ligação correspondente ao relacionamento , mas o espaço físico não tem estas possibilidades As formas de ligação possível das ocorrências em representações são também coisas que ocorrem nas representações , múltiplas vezes , se em uma representação certas ocorrências de dois ou mais elementos estão em uma destas situações relativas na representação , ela ocorre na representação , mas provavelmente se convencionou quais elementos (os elementos usados nestas representações) ocorrem , e o que são estas ocorrências , quais são as ocorrências oficiais em representações do tipo usado Então , os elementos usados em representações tem um conjunto provavelmente infinito de relações do tipo que representações determinam , e cada representação corresponde a parte deste relacionamento Dados elementos correspondentes aos conceitos de relação e ocorrência de elemento como termo de relação , à partir destes pode-se criar uma representação em que há representados elementos representando um conjunto de relações e elementos relacionados por elas , e à partir destes pode-se obter representações em que estes ocorrem , como diagramas de relações , e pode ser que o esquema de relacionamento inicial já permite obter estas últimas representações , provavelmente em representações em que se pode identificar estas duas etapas , seria possível esquemas de representação que possam ser vistos como possibilitando várias etapas deste tipo Os elementos usados em representações podem em parte ser interdefiníveis através de operação de composição de diagramas
Ocorrência: Assim como certo conjunto de elementos pode ocorrer em um tipo de representação , como por exemplo caracteres em textos , a idéia de ocorrência pode se aplicar em outras situações , quando algo é construído com peças com um conjunto de formas possíveis estas formas podem ser vistas como tendo um conjunto de ocorrências em algo que é construído assim , e para formas que podem surgir dentro de algo construído assim , mesmo que não entre as formas usadas , também poderiam ser chamadas de ocorrências destas formas , e em geral quando se precisa de cópias de certos elementos diferenciáveis deles e entre sí podería-se usar a palavra "ocorrências"
Morfismo: Conceito de teoria das categorias Intuitivamente um morfismo  A--f-->B  é um mapeamento da estrutura de  A  na estrutura de  B , provavelmente apenas alguma subestrutura de  B  "recebe" a estrutura de  A , a imagem do morfismo ou de  A  em  B  pelo morfismo , várias subestruturas de  A  podem ser mapeadas em mesma subestrutura de  B , por isso a imagem de  A  em  B  pode ser vista como uma versão "colapsada" de  A  e  A  pode ser visto como versão "desdobrada" de sua imagem em  B , de subestrutura de  B  ou de todo  B  se a imagem for todo  B O exemplo principal é funções preservando certo tipo de estrutura Mas qualquer coisa que satisfaça as propriedades para uma categoria pode ser considerado morfismo , inclusive coisas que não podem ser vistas conforme a descrição intuitiva acima
Relação: Relação seria uma idéia mais formal para lidar com relacionamentos Uso a palavra "relação" não no sentido de subconjunto de produto carteziano , ou conjunto de n-uplas que a satisfazem , mas no sentido de relação entre elementos específicos Mas é preciso que seja possível identificar coisas em comum em coisas diferentes , pode ser identificando tipos de relações , relações entre relações que determinam correspondência entre termos , usar relações convencionais Uma operação composição de diagramas de relações é uma possibilidade , pois se obtém uma relação à partir de outras relações Talvez uma idéia interessante seja considerar relação como generalização de conjunto , os termos no lugar de elementos , ou como uma espécie de conjunto com estrutura Uma motivação para definir relação assim é generalizar morfismo de teoria das categorias Detalhes da descrição abaixo podem ser relevantes para definir uma generalização de composição de morfismos , que seria uma operação de composição para diagramas de relações Uma relação aponta uma informação , provavelmente envolvendo relacionamento , e determina o envolvimento oficial de cada subconjunto de termos com a informação apontada , é diferente mencionar subconjuntos de termos do que termos individuais porque relações provavelmente são parte destes papéis , ou seja , os papéis dos termos provavelmente terão relações entre sí , mas não necessáriamente o papel de um termo tem relações com os papéis de todos os outros termos A informação apontada por uma relação pode envolver elementos que não ocorrem como termos dela (provavelmente qualquer descrição dela envolverá outros elementos) Uma mesma informação pode ser papel de mais de um subconjunto dos termos (me refiro a subconjuntos disjuntos) , estes papéis podem ser dependentes ou independentes , se são dependentes esta informação também é papel da união destes conjuntos de termos Uma mesma informação pode ser papel independente de conjuntos disjuntos de termos mesmo que envolva todos os elementos que ocorrem em todos eles Uma informação que seja papel de um conjunto de termos pode envolver elementos que não são termos da relação Uma possibilidade de papel é uma informação , provavelmente envolvendo relacionamento , entre um conjunto de elementos , entre eles elementos que ocorrem como termos da relação , pode ser parte do papel de qualquer subconjunto de termos que sejam ocorrência destes elementos , se é papel de vários subconjuntos de termos , se são disjuntos (como termos) , podem ter isto como parte de seus papéis de forma conjunta ou independente , se de forma conjunta é parte do papel da união destes conjuntos de termos Um papel pode ser informação individual sobre um elemento Mas acho que como a idéia de relação envolve vários termos , a palavra "relação" é mais apropriada que a palavra "propriedade" , mesmo que possa ser vista como propriedade de um conjunto de elementos Se uma relação pode ou não apontar informação sem relação com seus termos pode-se definir como for conveniente Relação com um termo pode ser vista como informação provavelmente sobre o elemento que ocorre como termo Se podem haver relações com zero termos defíne-se como for conveniente Mesmo que uma relação possa apontar também informação que não tem relação com os elementos de que seus termos são ocorrência , talvez os papéis dos (conjuntos de) termos deveriam ser algo em que os elementos de que são ocorrência estão envolvidos Não sei até que ponto esta descrição determina algo precisamente Uma relação convencional , conjunto de n-uplas , que determine os conjuntos de que as n-uplas são elementos do produto cartesiano (e a ordem) pode ser considerada relação deste tipo entre estes conjuntos Ocorrências são diferentes dos elementos de que são ocorrência e diferentes entre sí , mesmo ocorrências de mesmo elemento são diferentes , em particular , conjuntos de termos de relações diferentes são disjuntos Se os termos determinam a relação poderia-se falar apenas em conjuntos associados de termos É uma idéia mais simétrica Pode-se considerar a possibilidade de um ou mais ou todos dos termos relacionarem os outros entre sí , tendo papel semelhante a relação Ou pode-se ter um conjunto de elementos e contextualização definida em subconjuntos compatívies , cada subconjunto compatível determinando uma relação com um termo para cada elemento Em alguns tipos de relação alguma estrutura no conjunto de seus termos pode ser importante Uma relação implicada pela relação principal Pode ser visto como estrutura de argumentos da relação E pode-se definir operações que dependem de estrutura de argumentos diferente de par ordenado ou sequência de argumentos , a estrutura de argumentos seria uma relação entre os argumentos , em que os argumentos ocorrem como termos Então , relação delimita de certa forma um relacionamento , são pontos de referência exatos para lidar com relacionamentos Mas pode-se considerar relações também coisas com propriedades formais apenas , não correspondendo necessáriamente a um relacionamento real Algum tipo de relações formais poderia não ter definido de quem seus termos são ocorrência , sento apenas pontos de ligação possíveis com outras relações , seria preciso alguma regra determinando as ligações possíveis
Diagrama: Não precisa ter interpretação Envolve definição formal de algum tipo de diagrama que determina um conjunto , provavelmente infinito , de diagramas Costuma ter um conjunto de partes chamadas nós , que são pontos de ligação entre partes Se um diagrama tiver interpretação é uma representação Acho que tipos de diagramas surgem para ser usados como representações de algum tipo de coisa São constituidos de ocorrências de elementos de algum conjunto ligadas de alguma forma , por exemplo , ocorrências de caracteres ligadas por justaposição (incluíndo espaço e talvez nova linha) , as formas de ligar dependem do tipo de diagrama , uma definição formal que determine um conjunto de diagramas do tipo em questão determina também o conjunto de elementos que ocorre , as ocorrências são partes mínimas do diagrama Se o tipo de diagrama tiver nós definidos , são pontos de ligação entre as ocorrências Ocorrências são elementos que são diferentes dos elementos de que são ocorrências , ocorrências , mesmo de mesmo elemento , são diferentes entre sí , e ocorrências em diagramas diferentes são diferentes Por exemplo , em um tipo de diagrama chamado grafo orientado ocorre o elemento seta , se é grafo com inscrições as setas tem inscrições , então talvez seja mais natural vê-las como ocorrência do elemento que é a inscrição , como se vê neste exemplo , as ocorrências são ligadas de certa forma , no caso , as setas tem cada extremidade em um nó do diagrama No caso de grafo com inscrições , seta , independentemente de inscrição , também ocorre em um grafo , nó também ocorre , mas pode ser conveniente definir o conjunto oficial de elementos que ocorre em diagramas do tipo em questão Outro tipo de diagrama seria diagrama de relações , em que ocorrem relações ligadas por seus slots ou termos , no caso de termo , ocorrência do mesmo elemento , um conjunto de slots ou termos ligados no diagrama sendo um nó Outro tipo de diagrama seria matriz parcial de ocorrências em que a ordem entre linhas e a ordem entre colunas é vista apenas como forma específica de apresentar o diagrama , pode ser que linhas sejam vistas como conjuntos contexto e colunas como determinando conjunção , os elementos de uma mesma coluna representando todos algum mesmo elemento , neste caso pode ser natural considerar as colunas como nós do diagrama O tipo de diagrama que geralmente tenho em mente aquí é conjunto de conjuntos de ocorrências de elementos , intersecções fazem a ligação entre estes conjuntos , acho que é possível ver as ocorrências nos conjuntos como nós (é como vejo) , ou ver estes conjuntos como nós , imagino que os elementos usados para representar tenham determinada uma contextualização que dá significado mais específico a cada elemento de um conjunto deles , ou de ocorrências em um diagrama , e isto pode ser visto como caso particular de que em geral um diagrama dá significado mais específico às ocorrências que contém , seja qual for o tipo de diagrama , e ampliando o diagrama as partes já presentes ganham significado mais específico Há infinitas possibilidades de tipos de diagramas Um diagrama pode ser visto como relacionamento entre os elementos usados para representar , os elementos que podem ocorrer nele , cuja informação (?) é a possibilidade de ligar eles de certa forma , correspondente à ligação entre ocorrências suas no diagrama , ou seja , de criar este diagrama , se o diagrama representar algo a informação representada é outra , e pode ser imaginada como representada na primeira , as relações envolvidas correspondendo às relações envolvidas na primeira , então um diagrama pode ser visto como relação que aponta parte do relacionamento deste tipo entre os elementos usados para representar e este relacionamento representa o que o diagrama representa , provavelmente por que há correspondência entre os relacionamentos do relacionamento que a representação é e os relacionamentos envolvidos no que é representado Considerar a possibilidade de formar diagramas com ocorrências de certo conjunto de elementos como informação , relação entre eles , sendo que provavelmente para qualquer conjunto com mesmo número de elementos seria possível , parece contraintuitivo , mas é conveniente aquí , pode ser que a natureza dos elementos usados seja tal que nem todas as ligações do tipo usado sejam possíveis , ou como parte do tipo de diagrama se imponha restrições , em vez de relação poderia chamar de estrutura consturída com eles , mas vou considerar como relação Dado um conjunto finito de regras para construir estruturas finitas através de processos finitos , estas estruturas podem ser consideradas diagramas (nada impede de supor infinitos) , se estas regras e coisas envolvidas são finitos e as estruturas obtidas podem ter qualquer tamanho finito , provavelmente se poderá identificar múltiplas ocorrências de mesmas coisas nestas estruturas Há a possibilidade de estas estruturas receberem interpretação A idéia intuitiva de tipo de diagrama permite ainda flexibilidade do conjunto específico de elementos que podem ocorrer neles Um tipo de diagrama que usa um conjunto de elementos é uma estrutura que este conjunto recebe Esta estrutura determina quais relacionamentos entre estes elementos correspondem a diagramas Pode ser que qualquer subrelacionamento de certo relacionamento corresponda a algum diagrama , então esta estrutura pode ser considerada como consistindo deste relacionamento Se estruturas diferentes são preservadas pelo mesmo conjunto de funções então em certo sentido são a mesma , descrevem algo igual , pode-se considerar como estrutura algo determinado pelo conjunto de funções que a preserva , isto também pode ser considerado um tipo específico de estrutura , mas é preciso estar claro o que se quer dizer , ou o que não se deixou claro Pode haver um subconjunto dos diagramas considerados verdadeiros , por exemplo , são mapas parciais da realidade (portanto tem interpretação) e o que representam existe , ou seja , existe parte da realidade em que o diagrama "encaixa" Isto é estrutura adicional neste conjunto de elementos Dado um tipo de diagramas que podem ser verdadeiros ou não há a idéia de um diagrama do qual todos os diagrama verdadeiros sejam subdiagramas , de preferência minimal com esta propriedade , talvez único , é outro assunto Eu imagino diagramas representando informação de uma forma em que duplicando qualquer parte do diagrama e ligando ela ao diagrama tal que esta ligação corresponda a parte da ligação da parte original com o diagrama , talvez nenhuma , isto é redundante e a informação no diagrama é a mesma , os casos de "duplicar" uma parte mantendo entretanto partes suas como as originais , tendo o mesmo papel na parte original e na duplicada , é caso particular , pode ser descrito assim também Talvez se deveria supor que , dependendo da ligação que tem com o diagrama , partes redundantes adquirem , através desta ligação , o mesmo significado que as partes originais ganham no contexto que é sua situação no diagrama , ou seja , esta contextualização "passa" por certas ligações , o que seria uma propriedade da contextualização que se supõe para dar significado aos diagramas do tipo em questão (usei a palavra "contextualização" com significado mais geral que o original , em um conjunto contexto) Vou chamar de esquema de diagramas (não confundir com outro uso da palavra "esquema" em outra parte aquí) um conjunto de elementos usado para representar e estrutura que determina quais são os diagramas Vou chamar de morfismo entre esquemas de diagramas , uma função que preserva diagramas Vou chamar de função ocorrência a função que leva as ocorrências em um diagrama nos elementos de que são ocorrência Dado um diagrama  D  com função ocorrência  A<--f--D , posso também dizer: "o diagrama  A<--f--D" Se a função ocorrência  A<--f--D2  pode ser fatorada  A<--g--D1<--h--D2  passando por outra função ocorrência  A<--g--D1  então  D1  é semelhante a outro esquema de diagramas para  D2 , e  D2  pode ser visto como diagrama , ou determinando diagrama , neste outro esquema de diagramas A<--g--D1  pode ser definição de um esquema de diagramas correspondente a  D1 Através de um morfismo  A<----B  entre esquemas de diagramas  B  pode ser visto como um diagrama , provavelmente uma generalização do tipo de diagramas usado Se um diagrama corresponde a um subrelacionamento de certo relacionamento , isto também corresponde a um morfismo , morfismo inclusão  A<----D Ver diagrama como função ou morfismo  A<----B  pode ser como função ocorrência ou como inclusão do relacionamento correspondente a  B  no relacionamento correspondente a  A , acho que opções mutuamente exclusivas Morfismo inclusão não parece relacionado à idéia de ocorrências Dada uma categoria cujos morfismos podem ser vistos como funções ocorrência , se imaginamos o conjunto de morfismos com contradomínio em um objeto como sua estrutura , um morfismo  A<----B  determina a função que leva morfismos  B<----C  na composição de  A<----B<----C , e esta função pode ser vista como inclusão de estrutura
Operação de composição para diagramas: Determina para os diagramas nos quais está definida uma ampliação deles implicada lógicamente por eles , o resultado seria a parte adicionada , mas a forma como amplia o diagrama original é parte da operação , provavelmente a ampliação é com uma ocorrência do tipo de elemento que ocorre no diagrama , como uma relação , ou de algo que pode ser visto como ocorrendo no diagrama , como conjunto de ocorrências no caso de o diagrama ser conjunto de conjuntos de ocorrências , que pode ser visto como ocorrência de subconjunto do conjunto do esquema de diagramas , neste caso o resultado é este elemento cuja ocorrência é adicionada na ampliação , como a relação ou o conjunto de elementos , e não o diagrama resultado desta ampliação nem o diagrama com apenas uma ocorrência deste resultado , mas pode-se definir conforme for conveniente Acho que em geral depende de definição , havendo mais que uma possibilidade de operação composição Se há um conceito de nós para o tipo de diagrama provavelmente esta ampliação consistirá do acréscimo de uma ocorrência de algo com correspondente para cada nó do diagrama , como uma relação com um termo para cada nó , ocorrência do mesmo elemento , ou um conjunto com um elemento para cada nó do diagrama (se estes elementos já fazem parte dos elementos do esquema de diagramas é outro assunto) , a contextualização entre eles seria aquela implicada por contextualização correspondente a aquela existente entre os elementos em cada conjunto no diagrama , influência entre elementos correspondentes a conjuntos diferentes no diagrama seria indireta , mas talvez se poderia definir a operação tal que resulte em um conjunto de elementos com outra contextualização Talvez para diagramas consistindo de conjuntos de conjuntos de ocorrências devería-se apenas usar o conceito de diagrama verdadeiro , ou não contraditório , e não o resultado de composições Talvez muito do que se definiria através de uma operação composição possa ser definido apenas com isto
Sistema formal: Axiomas , regras de inferência , conjunto de teoremas resultante de demonstrações usando as regras de inferência começando pelos axiomas Interpretação não faz parte do conceito Acho que se houver interpretação se chama de lógica Se um sistema formal tem interpretação no mundo real as regras de inferência correspondem a relações (convencionais) entre coisas que existem , pois da forma como vejo uma fórmula é teorema se existe algo que representa Costuma haver regras de formação de elementos chamados fórmulas , das quais os teoremas são um subconjunto , estas costumam ser simples de modo que é simples determinar se um elemento é fórmula ou não , ao contrário de determinar se uma fórmula é teorema ou não Se há interpretação , no caso de um elemento não ser fórmula não há algo que represente , mas vejo desta mesma forma a idéia de uma fórmula não ser verdadeira , não há algo que represente , então talvez , se é possível atribuir alguma interpretação às fórmulas não verdadeiras também seja possível atribuir interpretação às não fórmulas , mas provavelmente seria algo abstrato e difícil de definir , relacionado à forma de representar do próprio sistema formal , por exemplo , através de sequências de caracteres , e talvez haja mais de uma possibilidade Pode haver uma operação conjunção tal que uma fórmula pode codificar ou "conter" um conjunto finito de fórmulas , e a demonstração sucessiva de teoremas usando teoremas já demonstrados , obtendo conjuntos de teoremas sucessivamente maiores pode equivaler à demonstração sucessiva de teoremas usando o teorema anterior , cada um "contendo" um conjunto de teoremas As fórmulas podem ser vistas como diagramas , são estruturas finitas obtidas à partir de algo inicial finito por processos finitos As fórmulas que através de conjunção "contém" um conjunto de fórmulas correspondem mais intuitivamente à idéia de diagrama Uma forma de ver sistemas formais é um diagrama inicial , o que corresponde a axiomas , regras de ampliação , o que corresponde à regras de inferência , e os diagramas que podem ser obtidos por aplicação sucessiva de regras de ampliação , que correspondem a conjuntos de teoremas Não sei se isto faz parte de algum tratamento usual de sistemas formais , mas pode ser útil considerar um subconjunto das fórmulas , dos axiomas , das regras de inferência e dos teoremas como auxiliares , o restante chamarei de principais Tem relação com a idéia de computabilidade , parte das demonstrações envolveria partes auxiliares do sistema formal , o que pode ser visto como computação , e pode haver diferentes possibilidades de parte auxiliar que tem mesmo resultado Se uma fórmula tem subfórmulas do subconjunto auxiliar seria uma forma de expressar o que possa expressar , potencialmente havendo outras formas , não necessáriamente esta fórmula precisa ser do subconjunto auxiliar Se há conjunção e  A  é auxiliar e  B  principal , talvez  A^B  não precisaria ser considerada auxiliar Se houver interpretação , talvez apenas fórmulas principais precisariam de interpretação Acho que definir quais as partes principal e auxiliar do sistema formal serviria para relacionar o sistema formal com outros sistemas formais , detalhes técnicos que não interferem nisso não importam Isto não estar definido para um sistema formal equivale a ele ser inteiro sua parte principal Então um morfismo entre sistemas formais com parte auxiliar poderia ser uma função entre os conjuntos de fórmulas principais que preserva teoremas principais e aspectos principais das demonstrações de teorema principais , o que já implica preservação de teoremas principais (acho que se todas as regras de inferência forem auxiliares nada a respeito das demonstrações precisa ser preservado) Eu tenho a intuição de a utilidade de sistemas formais e da matemática em geral vir de que à partir de um teorema de um sistema formal ou teorema matemático pode-se obter mais facilmente teoremas de sistemas formais , e afirmações verdadeiras , através de analogias nas formas de demonstrar Na verdade não precisa ser uma analogia simples , mas uma tradução entre formas de demonstrar , algo semelhante a levar um algoritmo em outro com mesmo resultado , a intuição é de conhecendo um teorema e o sistema formal Mas vou usar a palavra "analogia" Provavelmente uma tradução entre formas de demonstrar produzirá correspondente no outro sistema forma (ou mesmo) não só para uma fórmula , mas para um subconjunto As fórmulas nos dois sistemas formais sem correspondente no outro pela analogia podem ser vistas como auxiliares nas demonstrações , e se formarem exatamente o conjunto de fórmulas auxiliares destes sistemas formais , isto é natural , e esta analogia pode correponder a um morfismo entre sistemas formais , se a analogia determina correspondente para aspectos principais de demonstrações Eu não pesquisei muito sobre isso , mas acho que em geral não há um sistema formal cujos teoremas correspondam a todas analogias deste tipo (imaginando uma forma de representar elas sem supor um sistema formal específico) E que não é possível um sistema formal incluir o usdo de todas estas analogias possíveis como regras de inferência Não sei se há sistemas formais que podem simular qualquer outro Pode haver sequências infinitas de adições de axiomas que mantém o sistema consistente Talvez depende do que se considera simulação , talvez fórmulas do tipo  A--->B  possam ser consideradas simulação de fórmulas correspondentes a  B  em sistemas formais correspondentes a  A , não sei Se há um sistema formal que pode simular qualquer outro , então talvez bastaria considerar as analogias dentro dele Mesmo para usar uma analogia apenas em um teorema para obter outro de outro sistema formal , onde se estaria lidando com duas demonstrações finitas , o uso da analogia seria obter o outro teorema do outro sistema formal sem nova demonstração , ela precisa relacionar os processos de demonstração nos dois sistemas formais , e é preciso determinar a validade dela Estas analogias envolvem transformações entre demonstrações Isto provavelmente não é feito dentro de uma formalização deste processo , ou seja em um sistema formal , é baseado na confiança de que certa analogia é válida , provavelmente isto também tenha relação com capacidades primitivas Acho que encontrar estas analogias depende de criatividade Parte delas pode corresponder a regras de inferência , estar contidas nas regras de inferência de um sistema formal Ou , a aplicação de um conjunto de tipos de analogias pode fazer parte das possibilidades de um sistema formal Os teoremas obtidos assim podem envolver quantificação universal Não sei se isto é o papel mais natural da quantificação universal , mas a demonstração de uma fórmula quantificada universalmente provavelmente supõe que os casos que a quantificação percorre tem demonstração similar , mas fórmulas obtidas por analogia podem ter menos semelhança entre sí do que isto e provavelmente não há um ponto da fórmula ocupado pelo que é quantificado , são aspectos dela que seriam quantificados , mas a intuição de quantificação universal tem certa relação com a intuição destas analogias Como sistemas formais tem especificação finita , a quantificação universal provavelmente não corresponte a todo o conjunto de analogias possíveis E mesmo que isto fosse possível , se a única quantificação universal fosse esta isto limitaria o que pode ser expresso através das fórmulas do sistema formal , ou , vendo a informação em um teorema como a informação que pode ser obtida mais facilmente à partir dele com qualquer analogia válida , se a quantificação universal é tão geral isto provavelmente limitará a informação que um teorema pode conter , pois geralmente há fórmulas do tipo  (Vx P(x)) ---> B  e o que se quer expressar provavelmente é que  x  percorrendo certo conjunto é suficiente para concluir  B Para que se possa definir interpretações mais úteis para o sistema formal é preciso que a quantificação universal tenha bem definido o que o que ela percorre Fórmulas do tipo  A--->B  (supondo que há este conectivo) podem ser teorema mesmo que  A  não seja Supondo que  A  é teorema , pode-se imaginar o conjunto de fórmulas do mesmo sistema formal que podem ser obtidas por analogias válidas , estas analogias são traduções entre demonstrações , mas basta saber que uma fórmula é demonstrável , sem conhecer a demonstração , para que por uma destas analogias seja possível obter outro teorema sem efetuar demonstração , mas supondo que  A  é teorema , podendo não ser , portanto não haver demonstração de  A , as analogias também são aplicáveis , o conjunto de fórmulas que podem ser obtidas por analogias à partir de  A  é maior do que o conjunto de fórmulas que podem ser obtidas por demonstração à partir de  A  (e dos axiomas) , se  B  pode ser obtido à partir de  A  por demonstração a fórmula  A--->B  costuma ser demonstrável também (apenas à partir dos axiomas) Aplicar uma analogia em  A  supõe que  A  é teorema Caso não seja a analogia também produz um resultado (se a forma de  A  for compatível) Qual o significado de que  B  pode ser obtido de  A  desta forma ? No sistema formal obtido acrescentando  A  ao conjunto de axiomas , B seria teorema ? Para os axiomas em geral não há demonstração Então  A  poderia ser axioma sem  B  ser teorema (não sei se seria possível que os axiomas tivessem certa compatibilidade com as regras de inferência tal que , mesmo sem haver demonstração para eles tenha sentido aplicar analogias deste tipo) Se diz que o sistema formal é consistente se há fórmulas que não são teoremas , caso contrário é inconsistente , quando há negação ser inconscistente costuma equivaler à existência de um teorema  A^(não A) Pode ser que o acréscimo de  A  ao conjunto de axiomas resulta ainda num sistema consistente , mas provavelmente não há demonstração para  A Talvez mesmo que  A  não seja teorema , pode ser que o conjunto de fórmulas obtidas por analogias à partir de  A , e a partir de demonstrações à partir destas , não inclua todo o conjunto de fórmulas , tenho dúvida se isto é possível porque o conjunto de analogias possível é infinito , não há como conhecê-lo inteiro Dizer que se  A  é teorema  B  também é significaria que se há uma demonstração de  A  então há uma demonstração de  B Esta afirmação é verdaderia se  A  não é teorema ou se  A e B  são teoremas Afirmações que podem ser confundidas com esta são: .B  é demonstrável à partir de  A .a aplicação de analogias que permitem à partir de um teorema obter outros teoremas (do mesmo sistema formal no caso) permitem à partir de  A  obter  B  (considerando todas as analogias válidas possíveis , a maioria desconhecida) Vou me referir a estes como os significados 1 , 2 e 3  de "se  A  então  B" O significado 3 também parece natural , pois as analogias levam teorema em teorema , e se uma fórmula é teorema as fórmulas que podem ser obtidas por analogias através dela também são teoremas , mas nos casos em que  A  não é teorema o significado 3 supõe tudo o que seria teorema caso  A  fosse , aplica em  A  certa quantificação universal última que só se aplica aos teoremas , e só costuma ser usada fora do sistema formal , em metalinguagem (acho que não se costuma descrever isso como um tipo de quantificação universal) (talvez além destas descrições seja necessária alguma definição) O significado 3 envolve esta quantificação universal , algo semelhante a  (Vx A)--->B No caso de  A  ser teorema , tudo que seria consequência deste  Vx A  é teorema Normalmente o significado de  A  para  B  em  A--->B  é diferente do significado de um teorema  A  para uma fórmula  B , em  A--->B  A  é visto por  B  como uma suposição sobre coisas que ocorrem em  A , mas se  A  é teorema  A  é visto por uma fórmula  B  como fato sobre quaisquer coisas que possam ocupar o lugar de coisas que ocorrem em  A  que estejam em mesma situação relativa nos axiomas e regras de inferência , o significado 3 faria com que em  A--->B  A  fosse visto por  B  como se fosse teorema No significado convencional , em  A--->B  A  também é visto como teorema ou axioma , mas as coisas que ocorrem em  A  são vistas como constantes mesmo que não sejam , canstantes são vistas como estando em situação única relativamente aos axiomas e regras de inferência  , mesmo que haja outras constantes em situação igual Pode haver mais de um condicional "--->" no sistema formal , com significados diferentes O significado 2 implica o significado 1 Não estou supondo interpretação , mas que as regras de inferência são compatíveis com estes significados Estes significados estão relacionados a fórmulas serem teoremas Se há interpretação há ainda o significado "se  A  é verdadeira então  B  é verdadeira" , e talvez outros , só um subconjunto das fórmulas verdadeiras precisa ser teorema , e dependendo do caso pode ser que nenhum conjunto finito de axiomas e regras de inferência produza todas as fórmulas verdadeiras Não sei se há descrição em algum lugar de um sistema formal em que seja possível expressar através de fórmulas o terceiro significado acima , mesmo que os axiomas e regras de inferência só permitam obter parte dos teoremas relacionados a isto Não sei se pode ser consistente O significado 2 parece natural , A ---> B  sendo visto como dizendo que na extenção do sistema formal incluindo  A  como axioma  B  é teorema , e pode ser que certo tipo de regras de inferência podem ser codificadas em fórmulas , de modo que fórmulas  A--->B  poderiam ser vistas como fórmulas  B  em extenções do sistema formal Pode ser que se permita que analogias suponham a existência de algo , axiomas com certa propriedade ou regras de inferência com certa propriedade que precisariam existir se  A  fosse teorema , e com base também nisto produzam fórmulas que seriam teoremas , talvez se precise delimitar o que é considerado analogia Intuitivamente supor que uma fórmula é teorema é suposição sobre coisas que ocorrem na fórmula , propriedades e relações entre elas e estas suposições implicariam outros teoremas que correspondem a propriedades e relações entre as mesmas coisas , estas propriedades e relações seriam coisas relacionadas ao próprio sistema formal , à demonstrabilidade nele de fórmulas em que estas coisas ocorrem , e supor que uma fórmula que não é teorema seja teorema também corresponderia a suposições sobre propriedades e relações entre coisas que ocorrem nela , talvez seja equivalente a suposições sobre os conjuntos de axiomas e regras de inferência , mas se estas propriedades e relações são coisas relacionadas ao próprio sistema formal seria relativas ao conjunto de axiomas e regras de inferência existentes , ou talvez tendo estes como subconjuntos , o que estas suposições de propriedades e relações implicam seria exatamente o que é implicado pelas analogias válidas , ou estou confundindo obtenção de fórmulas por analogias com outra Poderia ser que haja suposições minimais diferentes sobre o sistema formal cada uma implicando que certa mesma fórmula é teorema , e simplesmente supor que a fórmula é teorema corresponda a supor que pelo menos uma delas vale , pode ser que se considere suposições de que fórmulas são teoremas como certo tipo apenas de suposição sobre o sistema formal , isto determinaria um significado do tipo 3 Supor que uma fórmula é teorema poderia ser considerado como supor que coisas simples que ocorrem nela na verdade são mais complexas , específicas , tais que a fórmula seria teorema , estas coisas mais complexas permitiriam uma demonstração , e havendo demonstração as analogias tem sentido , mas algumas analogias produziriam fórmulas em que estas coisas mais complexas ocorrem inteiras , de modo que corresponde a uma fórmula em que ocorrem apenas as coisas simples originais , de modo que produzem um resultado mesmo que não haja demonstração para a fórmula original Se com base nas analogias consideradas válidas , mesmo que a maioria infinita seja desconhecida , e através de demonstrações com base em fórmulas obtidas à partir delas , há fórmulas que não podem ser obtidas , o que não sei se pode ocorrer , o sistema formal seria consistente com existência de fórmulas que poderiam ser interpretadas através do significado 3 mencionado , mas talvez nenhum conjunto finito de regras de inferência e axiomas corresponderia ao significado completo destas fórmulas Talvez uma interpretação do tipo 3 da afirmação "se  A  é teorema  B  também é" sempre envolva ver o sistema formal como incompletamente especificado , mas com restrições sobre quem é , então as fórmulas que não são teoremas são vistas como potenciais teoremas e a afirmação tem sentido Talvez para que analogias tenham sentido em fórmulas que não tem demonstração seja preciso que haja potenciais demonstrações Talvez as possibilidades de quem o sistema formal é visto como especificação incompleta pode incluir a determinação de estruturas de coisas que ocorrem em fórmulas , que sem esta especificação completa parecem simples
Analogia: correspondência entre aspectos que preserva alguma estrutura
Esquema (não confundir com o uso da palavra "esquema" em "esquema de diagramas" , mesmo que haja ligações , e não confundir "esquema de diagramas" com "diagrama de esquemas"): Elemento que tem o objetivo de ser objeto de analogia , uma abstração de um conjunto de coisas análogas às quais é análogo , uma analogia do tipo previsto para o esquema é chamada de enquadramento no esquema daquilo que é análogo a ele por este tipo de analogia Dada uma analogia , as próprias coisas análogas estão na correspondência entre aspectos , pode-se imaginá-los como aspectos maximais de sí mesmos Vem a dúvida se seria natural não supor uma prioridade entre aspectos envolvidos nestas associações No caso de um esquema , os aspectos que precisarão de correspondentes para determinar uma analogia do tipo previsto , um enquadramento , podem ser imaginadas como slots de F( _ , ... , _ ) , mas  F  provavelmente também tem correspondente pelo enquadramento , acho que em geral determinado pelos valores dos slots Um enquadramento envolve correspondência entre partes do esquema e de aspectos do que que é enquadrado
Esquema mental (ou em inteligência artificial , na internet encontrei a palavra "frame" também): Modelo de aspectos de situações envolvendo evoluções possíveis ou certas do aspecto , comportamentos aceitáveis e recomendados e seu impacto na evolução , etc Dada uma situação , um conjunto de enquadramentos enquadra aspectos da situação , para que o conjunto de enquadramentos seja compatível é preciso que haja evolução da situação , comportamentos aceitáveis ou necessários , e relação entre estes , compatíveis com os aspectos destes determinados por suas representações abstratas nos esquemas transformadas de cada esquema para a situação através do enquadramento respectivo Haverá aquilo que corresponde ao próprio  F  quando os slots são preenchidos com uma combinação válida , enquadramento válido , F  pode ser visto como correspondendo a um slot No caso de esquemas , seria natural não haver prioridade entre os slots e  F ? Poderia haver um conjunto de esquemas e um enquadramento consistir de uma função válida com domínio em um subconjunto deles Noção de enquadramentos compatíveis Contextualização entre estes esquemas no domínio e entre os no contradomínio provevelmente terá um papel Podería-se ver um conjunto de esquemas como outro esquema Um esquema pode ser criado à partir de outros através de um diagrama de esquemas Na situação descrita acima , um esquema composto apropriado deste tipo poderia ser criado antes e então enquadrar a situação Imagino que , por contextualização , um conjunto de esquemas pode determinar um esquema maior , se são compatíveis , um enquadramento neste esquema maior consiste de um conjunto de enquadramentos compatíveis neste conjunto de esquemas , já definindo o que são enquadramentos compatíveis Atribuir um enquadramento para cada esquema de um esquema maior obtido desta maneira pode ser imaginado como preencher slots Cada um dos esquemas envolvidos pode ser visto um pouco como o  F  em  F( _ , ... , _ )  e um pouco como slot Vou considerar diagrama de esquemas um conjunto de conjuntos de ocorrências de esquemas (do tipo que "dilui" a diferença entre  F  e seus slots) , com intersecções Um nó de um diagrama de esquemas é uma ocorrencia de esquema nele Através de uma operação composição um diagrama de esquemas no qual esteja definida determina um esquema para cada ocorrência de esquema no diagrama , conjunto de esquemas compatível , em conjunto formam um esquema composto Quanto maior um diagrama de esquemas , menos possibilidades restarão para conjunto de enquadramentos compatíveis do esquema composto determinado pelo diagrama Para um diagrama grande o suficiente , pode ser que reste apenas um conjunto de enquadramentos compatíveis , os significados de todos os nós do diagrama ficando determinados Provavelmente se lida com representações e não com as coisas em sí E pode ser que a representação geral , diagrama , não determina completamente quem as coisas representadas são , havendo mais que uma possibilidade de significados simultaneos das partes da representação Então , o que é enquadrado é parte da representação Um enquadramento consistiria de adicionar uma ocorrência do esquema no diagrama correspondente ao estado atual , o que envolve determinar as partes deste diagrama em que cada parte do esquema é ligada , uma função como intuitivamente é um enquadramento Pode ser que a adição de uma ocorrência de um esquema a este diagrama envolva uma ampliação maior deste diagrama , neste caso o restante desta amliação pode ser vista como ligação , tradução , do esquema para o diagrama , o próprio enquadramento O estado "mental" , incluindo dados sensoriais , corresponde a um diagrama , este evolui , enquadramentos vão sendo adicionados , partes do diagrama vão sendo descartadas , e o comportamento , físico se for o caso , é determinado pela evolução deste diagrama Provavelmente haverá um conjunto de esquemas para os quais se procura enquadramentos continuamente , estes enquadramentos podem determinar que se procure enquadramentos para outros conjuntos de esquemas , talvez já fornecento informação heurística que facilite encontrá-los Pode haver níveis , níveis mais baixos criando , ou simulando , níveis superiores Isso parece o paradigma lógico de programação Mas os valores das variáveis seriam pontos no próprio diagrama de predicados Se lida com representações e o que é enquadrado são partes da própria representação As variávies seriam apenas auxiliares na representação das ligações no diagrama Ao um predicado , esquema , receber valores para suas variávies , enquadrar parte do diagrama , ajuda a determinar quem estas partes do diagrama são Pode-se imaginar o conjunto de enquadramentos convergindo no diagrama gerando o diagrama na região de convergência A idéia é o diagrama determinando algo mais específico que os esquemas que ocorrem nele Há o sentido oposto Determinar um esquema à partir de um conjunto de exemplos , coisas análogas , com analogias entre elas , seria abstração Acho que o processo de abstração também pode ser feito através de diagramas , em que ocorrem não esquemas , mas coisas específicas , e determinam para cada nó um esquema Mas , como se usa representações e não as coisas em sí , serão esquemas ou nós no diagrama representando a situação atual Costuma-se imaginar abstração como disjunção , oposto da conjunção , e diagrama envolve contextualização , e não conjunção , nos conjuntos do diagrama Precisaria haver uma operação oposta à de contextualização em conjuntos , não pensei mais sobre isso Talvez , se tanto uma disjunção como uma conjunção forem vistas com aproximação do conjunto de argumentos , poderiam haver outras aproximações , talvez combinando aspectos de certa operação disjunção e certa operação conjunção Composição em diagramas é uma especie de conjunção , em que os argumentos são colocados em certa situação relativa , determinada pelo diagrama , antes da conjunção , os argumentos seriam coisas que ocorrem ou podem ser vistas como ocorrendo no diagrama , como esquemas Talvez possa haver uma operação mais geral que composição e abstração útil para as finalidades em que esquemas são úteis Talvez seria como "a curva que mais se ajusta" ao diagrama
0 notes
asdfgdfme · 8 years ago
Text
--[[
 Script amador (Lua 5) para criação de arquivos .wav  É usado através de outros scripts que usam o que é definido nele  Tinha postado anonimamente a alguns anos atrás  Na época fiz alguns testes no meu computador e funcionaram  Mais tarde percebí que há situações em que não funciona como previsto  Não testei novamente antes de postar aquí  Não tentei entender novamente como usar , mas há a descrição abaixo que fiz na época  Difícilmente vou mexer mais  Domínio público  Pode-se também fazer algo do zero inspirado na descrição abaixo
 Não tomei tempo para escolher nomes de variáveis e funções e não comentei as funções ,  a não ser as descrições abaixo
 Eu estava interessado na possibilidade de criar música eletrônica desenhando  através de funções cada onda , que a música fosse perfeita a nível de ondas  individuais , mesmo que a audição humana não perceba tantos detalhes
 O objetivo é criar arquivos wav especificando a função  f  tal que as amostras sejam  proporcionais a  f(t)
 Parece que no Tumblr , selecionando todo o texto do post e copiando , as quebras de  linha adicionais que aparecem no site por causa da largura da área de texto desaparecem
 Copie o texto (inteiro , pois esta parte está como comentário) e salve como  wav.lua  em  um diretório vazio ,  copie  lua.exe  (lua versão 5) (pequeno) para este diretório , os  scripts de especificação dos arquivos .wav também vão neste diretório , e se o caminho  for omitido no script o arquivo .wav resultante também sai neste diretório (se ocorrer  alguma restrição quanto a salvar em outros diretórios então tem que ser assim)
 A linguagem  lua  faz diferença entre letras minúsiculas e maiúsculas em variáveis , neste  script por exemplo , SIN  é diferente de  sin  não confundir também  wav.O  con  wav.o  explicados abaixo
 Uma coisa que talvez alguém que mexesse neste script faria seria escolher bem os nomes  para as variáveis e funções definidas
 O script redefine as operações para tabelas com metatables  wav.funmt  ,  wav.df_f_mt  a redefinição de operações não altera as prioridades , por exemplo ,  " ^ "  tem prioridade maior  que  " + "
 As tabelas com metatable  funmt  podem ser chamadas como funções
 Há também as metatables  o_mt  ,  n_fun  ,  l_n_fun  , tabelas com metatable  n_fun  são n-uplas   , as operações entre duas delas são feitas entre coordenadas correspondentes , e se um dos  operandos não é  n_fun  então é operado com todas as coordenadas do outro  wav.N(f1,...,fn)  retorna a n-upla com metatable  n_fun
 {N(1,2,3),N(4,5,6),N(7,8,9)}[N(1,2,3)] = N(1,5,9)  se a metatable da tabela é  wav.l_n_fun
 A tabela  wav.o  só é usada em  wav.O  e  wav.Ar  só a tabela  wav.o  tem metatable  wav.o_mt  , uma operação com outro elemento resulta nele  mesmo (wav.o) com exceção de: f .. wav.o = f  e  f ^ wav.o = f  e  wav.o(a1,...,an) = {a1,...,an}  com metatable  n_fun
 Com exceção das variáveis (espero que tenha lembrado de todas)      wav ,      min = math.min  ,  max = math.max , floor = math.floor , ceil = math.ceil , Dpi = 8*math.atan(1) ,      sin = function(x)  return math.sin(Dpi*x)  end  ,  cos = function(x)  return math.cos(Dpi*x)  end  ,  exp = math.exp  ,      mod = função módulo , periódica no primeiro argumento  (math.mod não é na transição entre números positivos e negativos)      para  x  positivo , mod(x,n) = math.mod(x,n)  ,  toint(v) =  valor inteiro mais próximo  ,  div(a,b)  divisão inteira      wrap = coroutine.wrap  ,  yield = coroutine.yield      t_global = instante de tempo correspondente à  amostra que  wav.criar_arquivo  está calculando no momento  e das variáveis      FREQ , ONDA , ENVELOPE , SOM , PRX , FIM , TRANSICAO_NOTAS , TRANSICAO_TIMBRE  que podem ser alteradas nos scripts  e das variáveis definidas quando se chama  wav.escala_justa()  ou  wav.escala_temperada()  (variáveis com nomes de notas)  , as tabelas e funções mencionadas abaixo estão na tabela  wav  , por exemplo ,  wav.X  e  wav.ll
 provavelmente quando usar  wav.lua  você fará  X = wav.X , ll = wav.ll , etc   , ENTÃO VOU OMITIR A PARTE  "wav."  ABAIXO
 Para metatable  funmt  :
 Normalmente  f(t) = f:fun(t)  para qualquer  t
 As razões para a existência dos campos  f.ini , f.prx , f.fim  são:
     Nas operações  f .. g  e f ^ g  (definidas abaixo) , f(t)  é considerado  0  para  f.fim < t  e  g(t)  é considerado  0      para  t < g.ini    (f  cortada só à  direita e  g  só à  esquerda , mesmo assim pode haver sobreposição)  , mais detalhes abaixo
     Criar_arquivo(f)  avalia  f  de  mí­nimo( f.ini , 0 )  a  f.fim  se  f.ini /= -infinito , caso contrário  de  0  a  f.fim
     Em  loop(f)  ,  f(t)  é considerado  0  para  t < f.ini  e  f.fim < t
 A linguagem  lua  aceita os valores  menos infinito (-1/0)  e mais infinito (1/0)  e  indeterminado (0/0)
 Quando  f.ini = -infinito  ,  f.prx = -infinito  ,  f.fim = +infinito  então em  f+g , f-g  e  f*g  os valores de  .ini , .prx , .fim  são  os de  g
 Além dos campos  f.ini , f.prx , f.fim  podem haver outros campos que dependem das operações envolvidas na expressão que deu origem a  f
 loop(f)  é função que repete o trecho ( 0 , f.prx ) somando as intersecções se o intervalo  ( f.ini , f.fim )  for maior
 loop(f).ini = -infinito , loop(f).prx = -infinito , loop(f).fim = +infinito
 + , *  são soma e produto pontuais
 Se um dos argumentos de + ou * é um número , vale como uma função constante com  .ini = -infinito , .prx = -infinito ,  .fim = +infinito
 (f    +|-|*    g).prx    =    max( f.prx , g.prx )
 Se  f.ini  é  menos infinito  então  (f +|-|* g).ini =  g.ini  , que talvez é  menos infinito
 Se  g.ini  é  menos infinito  então  (f +|-|* g).ini =  f.ini
 Caso contrário  (f +|-|* g).ini   =    min( f.ini , g.ini )
 Se  f.fim  é  mais infinito  então  (f +|-|* g).fim  =  g.fim  , que talvez é  mais infinito
 Se  g.fim  é  mais infinito  então  (f +|-|* g).fim  =  f.fim
 Caso contrário  (f +|-|* g).fim    =    max( f.fim , g.fim )
 Se  f  ou  g  é número vale como a função constante correspondente com  .ini= menos infinito , .prx = menos infinito ,  .fim = mais infinito
 (-f)(x) = -f(x)  , .ini , .prx , .fim  são os mesmos de  f
 f .. g  é a soma de  f  zerada à  direita de  fim(f)  com  g  zerada à  esquerda de  inicio(g)  e deslocada (seu gráfico)  f.prx  para a direita
       .ini = min( f.ini , g.ini + f.prx )        .prx = max( f.prx , g.prx + f.prx )        .fim = max( f.fim , g.fim + f.prx )
 f ^ g  é a soma de  f  zerada à  direita de  fim(f)  com  g + f(f.prx)  zerada à  esquerda de  inicio(g)  e deslocada (seu gráfico)  f.prx  para a direita  Se  g(0) = 0  então  f ^ g  pode ser contí­nua  (para potenciação use  POW(f,g) , POW(f,n) , POW(n,f))
       .ini = min( f.ini , g.ini + f.prx )        .prx = max( f.prx , g.prx + f.prx )        .fim = max( f.fim , g.fim + f.prx )
 Tentei implementar  ..  e  ^  tal que para avaliar  (f1 .. ... .. fn)(t)  e  (f1 ^ ... ^ fn  )(t)  normalmente apenas seja necessário  computar alguns termos , fiz uso de corotinas , acho que é a parte mais difícil de entender neste script  Parece que com Lua é possível criar realmente muitas corotinas simultaneas
 (f / k)(t)  =  f(t / k)    (uma escala no domí­nio da função)  (para divisão use  f * INV(g))
 (f / k).ini = k*f.ini
 (f / k).prx = k*f.prx
 (f / k).fim = k*f.fim
 Se  g  não é número  então  f(g)  é a composicao  f o g
 (f(g)).ini = g.ini
 (f(g)).prx = g.prx
 (f(g)).fim = g.fim         os valores de  f  fora do intervalo  (f.ini,f.fim)  podem ser importantes
 ll( f )  "põe" ou altera  .ini , .prx , .fim  em  f  , uma função normal ou tabela com metatable  funmt
 ll( ini , f , prx , fim )
 ll( f , prx , fim )------------ini = f.ini  ou  -infinito  se  f  é função normal
 ll( f , prx /= -infinito )-----ini = f.ini  ou  -infinito  se  f  é função normal-------------------------------fim = prx
 ll( f , prx = -infinito )------ini = f.ini  ou  -infinito  se  f  é função normal-------prx = -infinito---------fim = +infinito
 ll( f )------------------------ini = f.ini  ou  -infinito  se  f  é função normal-------prx = -infinito---------fim = +infinito
 direita(f,d)  desloca  f  (seu gráfico , .ini , .prx e .fim) uma distância  d  para a direita (para a esquerda usar  d  negativo)
 INV(f  com metatable  funmt)  retorna inversa de  f  (INV(f)(x) = 1/f(x))
 POW(f,g)  potência  (a operação " ^ " está com outra utilidade)  f e/ou g  número , função simples ou com metatable  funmt  .ini , .prx , .fim  como em   " + "  e  " * "
 Se  f  tem metatable  funmt  então  f:c()  é cópia independente de  f
 Se um mesmo elemento com metatable  funmt  for usado em instruções diferentes e se entre duas delas for necessário mexer diretamente na  tabela que ele é , por exemplo , em  .prx  , sem o intermédio das operações , então usar uma cópia  ( f:c() ) , caso contrário o último  estado dele poderá valer inclusive para operações anteriores
 O script define:
 I(x) = 0 ,                                                                     I.ini = 0       , I.prx = 1       , fim = 1  X(x) = x ,                                                                     X.ini = -inf    , X.prx = -inf    , X.fim = +inf  Xl(x) = x ,                                                                    Xl.ini = 0      , Xl.prx = 1      , Xl.fim = 1  S(x) =  0 se x < 0  ,  transição suave de 0 a 1 se 0 < x < 1  ,  1 se 1 < x  , S.ini = 0       , S.prx = 1       , S.fim = 1  D(x) =  1 se x < 0  ,  transição suave de 1 a 0 se 0 < x < 1  ,  0 se 1 < x  , D.ini = 0       , D.prx = 1       , D.fim = 1  A(x) =  integral de  S , derivada de  A é  S  ,                                A.ini = 0       , A.prx = 1       , A.fim = 1  SIN(x) = seno de 2*Pi*x  ,  COS(x) = coseno de 2*PI*x  ,                       SIN.ini  = -inf , SIN.prx  = -inf , SIN.fim  = +inf  IEXP(x) = 1/exp(x)  ,                                                          IEXP.ini = -inf , IEXP.prx = -inf , IEXP.fim = +inf  ZERO(x) = 0  ,  UM(x) = 1  ,                                                   ZERO.ini = -inf , ZERO.prx = -inf , ZERO.fim = +inf  Z  ponto de partida para fazer sucessivamente  x = x .. ...  ou  x ^ ...  tem "largura"  zero  e outra  metatable  (talvez seja melhor usar  I/0  em vez de  Z)  T(x)  é o instante de tempo para o qual se está no momento calculando a amostra para o arquivo  .wav  independentemente do  argumento  x  ,                                                                T.ini = -inf    , T.prx = -inf    , T.fim = +inf
 Note que  SIN(x)  é o seno de  2*pi*x  e não de  x  e  COS(x)  é o coseno de  2*pi*x  sin  e  cos  são funções normais e (diferente de  math.sin  e  math.cos)  ,  sin(x)  é  seno de  2*pi*x  e  cos(x)  é  coseno de  2*pi*x
 As tabelas  tb  com metatable  df_f_mt  contém uma função  tb.f  e sua derivada  tb.df  ambas com metatable  funmt  tem definidas analogamente às tabelas com metatable  funmt  + , - , * , .. , ^  e  /  que aqui aplica a escala também à imagem da função  (por isto , na derivada (.df) só no domí­nio) , assim é mais útil , pois funções com metatable  df_f_mt são usadas como argumento da função  SOM  .f.ini = .df.ini  ,  .f.prx = .df.prx  ,  .f.fim = .df.fim
 O script define:
 wav.I_    = { df = wav.I                     , f = wav.I    }  setmetatable(wav.I_   ,wav.df_f_mt)  wav.X_    = { df = wav.UM                    , f = wav.X    }  setmetatable(wav.X_   ,wav.df_f_mt)  wav.Xl_   = { df = wav.ll(0,um,1,1)          , f = wav.Xl   }  setmetatable(wav.Xl_  ,wav.df_f_mt)  wav.A_    = { df = wav.S                     , f = wav.A    }  setmetatable(wav.A_   ,wav.df_f_mt)  wav.Z_    = { df = wav.Z                     , f = wav.Z    }  setmetatable(wav.Z_   ,wav.df_f_mt)  wav.SIN_  = { df = Dpi*wav.COS               , f = wav.SIN  }  setmetatable(wav.SIN_ ,wav.df_f_mt)  wav.COS_  = { df = - Dpi*wav.SIN             , f = wav.COS  }  setmetatable(wav.COS_ ,wav.df_f_mt)  wav.UM_   = { df = wav.ZERO                  , f = wav.UM   }  setmetatable(wav.UM_  ,wav.df_f_mt)  wav.ZERO_ = { df = wav.ZERO                  , f = wav.ZERO }  setmetatable(wav.ZERO_,wav.df_f_mt)
 As funções  escala_justa  e escala_temperada  definem variaveis com valores proporcionais às frequências de notas musicais  A função  escala_temperada  define mais variáveis que a função  escala_justa  Pode-se obter outras notas na escala justa através de produtos , por exemplo  mi maior consiste das notas  mi , mi*mi , si  Para ver os nomes das variáveis definidas , veja a definição destas funções abaixo
 escala_justa()  (proporções simples exatas entre as frequências das notas)  define as notas (números proporcionais à s frequencias):  dDo , dre , dmi , dfa , dsol , dla , dsi   , dst , drm  cDo , cre , ...  bDo , ...  aDo , ...  Do , re , ... , st , rm  Doa , ...  Dob, ...  Doc , rec , mic , ...  Dod , red , mid , ...  (st  é a sétima (igual a 7/4) , rm  é a versão de ré para ré menor tocando em dó)
 escala_temperada() (a escala convencional)  define as notas:  dDo , dDos , dre , dres , dmi , dfa , ... , st = las , rm = re  ...  Dod , Dosd , red , resd , ...
 escala_temperada define mais notas , provavelmente voce achara as notas de mesmo nome iguais
 O(nota) "faz" uma nota , O(nota1,...,notan) "faz" as n-1 transições suavemente
 O( nota1 , ... ,  { unidade de tempo  ou  liga/desliga repetição de envelope , unidade de tempo  ou  liga/desliga repetição de envelope ,
   trn = fun. trans. notas , trt = fun.trans. timbre , prx = proxima , env = envelope , som = SOM , fim = fim , par. extra1 = ... , ... }                                          (alguns destes , o que quiser redefinir)  , nota , ... , notan )
 redefine localmente  os valores de  PRX , ENVELOPE , SOM , FIM , UN_TMP , TRANSICAO_NOTAS , TRANSICAO_TIMBRE  fun. trans. notas  determina como ocorrem as transições entre notas , normalmente é usado  A_  ,  deve ter  metatable  f_df_mt  ,  .f  deve ser tal que  .f(0) = 0  e  .df  varie de zero a um  no intervalo  (0,1)  , por exemplo  A_  ou então  (I_ ^ (.5*Xl_*Xl_) ^ Xl_)/(1/3)  fun. trans. timbre com metatable  funmt  deve variar de  zero a um  no intervalo  (0,1)  e ter  .ini = 0 , .prx = 1 , .fim = 1  redef. local de UN_TMP é em unidades de  UN_TMP  global  e de  PRX  e  FIM  é em unidades de tempo de  UN_TMP  local (talvez redefinido)  se o campo  [1] ou [2]  for  número redefine localmente UN_TMP , se for de outro tipo , liga/desliga repetição do envelope (localmente)  então uma chamada a  O  pode ter trechos com repetição do envelope e trechos sem , o parão é aplicar o envelope uma vez a cada  chamada a  O  uma tabela contendo eventuais parametros adicionais a estes é enviada como quarto argumento para a função  SOM  , usada por  O  e  Ar
 Ar( m ,nota1,...,notan)  "faz" as  n  notas cada uma permanecendo por  m  notas seguintes
 Ar( m , nota1 , ... ,  { unidade de tempo , trt = fun.trans. timbre , prx = proxima , env = envelope , som = SOM , fim = fim , par. extra1 = ... , ... }                                          (alguns destes , o que quiser redefinir)  , nota , ... , notan )
 redefine os  valores de  UN_TMP , PRX , ENVELOPE , SOM , FIM , UN_TMP , TRANSICAO_NOTAS , TRANSICAO_TIMBRE  fun. trans. timbre  determina como ocorrem as transições de timbre  normalmente é usado  S , deve ter  metatable  funmt  , variar de  zero a um no intervalo  (0,1)  e ter  .ini = 0 , .prx = 1 , .fim = 1  redef. local de UN_TMP é em unidades de  UN_TMP  global  e de  PRX  e  FIM  é em unidades de tempo de  UN_TMP  local (talvez redefinido)  uma tabela contendo eventuais parametros adicionais a estes é enviada como quarto argumento para a função  SOM  , usada por  O  e  Ar
 Não pode haver duas tabelas de redefinição consecutivas separadas apenas por uma ví­rgula (também não há necessidade)
 Se  -infinito < ENVELOPE.ini != 0  então o som de cada nota começa fora do ponto de referência (provavelmente o pico do envelope será no  ponto de referência) , para  O  isto só vale para a primeira ocorrência do envelope (se for especificada repetição do envelope)
 Dependendo da função  SOM  (ver abaixo) no lugar das notas em  O  e  Ar  podemos colocar  o(nota,par1,...,parn)  onde  par1,...,pari  são  números parâmetros para o timbre do som que são interpolados como as notas em  O
 Para omitir uma nota ou parametro colocamos  o  (minúsculo) em seu lugar  (também  " o ")
 Se a nota ou um ou mais parametros de timbre são omitidos , por exemplo  O(o(aDo,.25,.5),o(o,.3,o),o(mi,.4,o),o(asol,.5,.5),...) ,  em uma ou mais casas a interpolação é feita entre os definidos mais próximos (durando mais) , se apenas a nota está presente em uma casa  não é necessário usar a função  o , por exemplo  O( o(Do,.25,.5) , mi , sol , o(Doa,.5,.5) , ... )  , e se tanto a nota como os parametros  estão ausentes pode-se por apenas  o , por exemplo  O( o(Do,.25,.5) , o , o , o(sol,.5,.5) , ... )
 Para  Ar  é o mesmo , mas apenas os parametros de timbre são interpolados variando continuamente , as notas permanecem e se sobrepõe por  um tempo determinado por  n  em  Ar( n , ... )  (primeiro parametro de  Ar) , mas dependendo do envelope podem ser audí­veis por menos tempo
 FREQ  é a frequência de referência em ciclos por segundo , valor padrão é  180
 A função  SOM  que vem definida no script usa a função  ONDA  , mas pode ser redefinida de outra forma e não usar
 Se  O  é usado como por exemplo  O(Do,mi,sol)  , ONDA  pode ser por exemplo  2*loop(S..D..I/2)/.25 - 1  ou então  SIN
 O mesmo para por exemplo  Ar(n,Do,mi,sol)
 Se  é usado como por exemplo  O(o(aDo,.125,.5),o(asol,1,.5),...)  então
 ONDA(  f  ,  pt  ,  par. extras  )  onde:        f  (metatable funmt)  é função cuja derivada é a frequência em cada ponto (SOM  envia  f.f  para  ONDA)        pt  (metatable  n_fun)  é n-upla de funções para modular o timbre        par. extras  é uma tabela com parametros extras talvez usados na chamada a  O
 O valor inicial de  ONDA  usa um par de funções para modular o timbre e aceita parametros extras  .mf (funmt) e  .mt  (n_fun)  para  modulação global de nota (deve oscilar em torno de 0) e timbre , as modulações globais são somadas a aquelas que são interpoladas
 Em  O(o(aDo,.25,0),o(asol,.5,1),...)  por exemplo , tanto as notas  aDo , asol  como os parametros para o timbre  .25 , 0  e  .5 , 1  são interpolados produzindo para as notas uma função  funmt  e para os parametros de timbre uma n-upla  n_fun  (no caso dupla) de funções  funmt
 Para s função ONDA que vem definida , variar o primeiro parametro de timbre mais ou menos de  .125  a  1  e o segundo de  0  a  2
 Em  O( {16,mt=N(.5*SIN/.5)} , o(aDo,.25,0) , o(asol,.5,1) , ... )  a unidade de tempo local passa a ser  16*UN_TMP  e  .5*SIN/.5  é somada  aos parametros de timbre
 SOM(  f  , tempo inicial  ,  pt  ,  par. extras  )  retorna função (funmt) representando algo audí­vel
       f  é  f_df_mt   ,  pt  é  n_fun  ,  par. extras  é tabela
 UN_TMP  é a duração de cada transição em  O  (acaba uma , começa outra)  e entre o inicio de notas em  Ar  valor padrão:  0.25
 ENVELOPE  é a função variação de intensidade em cada chamada a  O  e de cada nota em  Ar  valor padrão:  IEXP/.5
 Se  PRX  for  nil  então o valor de  .prx  para o resultado da chamada a  O  é  UN_TMP  se há um argumento ou  (n-1)*UN_TMP  se há  mais ,  e para a chamada a  Ar  é  n*UN_TMP  de modo que não há sobreposição em  O(...) .. O(...)  se  PRX  for diferente de  nil  então é o valor de  .prx  para o resultado da chamada a  O  ou  Ar
 Se  FIM  for  nil  então o valor de  .fim  para o resultado da chamada a  O  é  UN_TMP  se há um argumento ou  (n-1)*UN_TMP  se há  mais , caso contrário  .fim = FIM
 Dependendo de  PRX  e  FIM  pode haver sobreposição em  O(...) .. O(...)  ou  Ar(...) .. Ar(...)
 criar_arquivo( f , caminho com nome (opcional) )  cria arquivo  .wav  de  16 bits  com amostras  int(256*f(t))  ,  t  em segundos  por exemplo , criar_arquivo( f , 'dir1\\dir2\\nome.wav')  Se o caminho é omitido cria onde estão  lua  e  lua.exe  , se o nome (e caminho) é omitido  usa o nome  arq.wav  Se  f.ini = - infinito  então começa em  0  , caso contrário começa em  mí­nimo( f.ini , 0 )  vai até  f.fim
 Nos scripts de especificação dos arquivos wav , não altere as variáveis:  (estão fora da tabela  wav)      wav ,      min = math.min  ,  max = math.max , floor = math.floor , ceil = math.ceil , Dpi = 8*math.atan(1) ,      sin = function(x)  return math.sin(Dpi*x)  end  ,  cos = function(x)  return math.cos(Dpi*x)  end  ,  exp = math.exp  ,      mod = função módulo , periódica no primeiro argumento  (math.mod não é na transição entre números positivos e negativos)      para  x  positivo , mod(x,n) = math.mod(x,n)      wrap = coroutine.wrap  ,  yield = coroutine.yield      t_global
 As variáveis  FREQ , ONDA , ENVELOPE , SOM , PRX , FIM  estão descritas acima e podem ser modificadas conforme a descrição
 Se chamar a função  escala_justa()  ou  escala_temperada()  são definidas variáveis com nomes de notas
 A linguagem  lua  diferencia letras maiúsculas de minúsculas em variáveis
Valores padrão:
FREQ = 180 ENVELOPE = IEXP/.5 UN_TMP = .25 PRX = nil FIM = nil TRANSICAO_NOTAS = ((I_/3) ^ A_)/(1/4)       (experimente  A_  ) TRANSICAO_TIMBRE = S
Funções  ONDA  e  SOM  ver no final do script
modelo geral:   (para executar digite  dofile('nome.lua')  na janela de  lua.exe  e espere o cursor voltar , pode demorar ------------------------------------------------------------------------------------------------
dofile('wav.lua')
I = wav.I  X = wav.X  Xl = wav.Xl  S = wav.S  D = wav.D  A = wav.A  SIN = wav.SIN  IEXP = wav.IEXP  ZERO = wav.ZERO  Z = wav.Z I_ = wav.I_  X_ = wav.X_  Xl_ = wav.Xl_  A_ = wav.A_  Z_ = wav.Z_  SIN_ = wav.SIN_  COS_ = wav.COS_  UM_ = wav.UM_  ZERO_ = wav.ZERO_ INV = wav.INV    POW = wav.POW    EXP = wav.EXP    IEXP = wav.IEXP    T = wav.T ll = wav.ll    loop = wav.loop O = wav.O    Ar = wav.Ar    o = wav.o escala_justa = wav.escala_justa    escala_temperada = wav.escala_temperada    (o que for usado , não sei se lembrei de tudo)
FREQ = ... function ONDA(f,pt,pe) ... end UN_TMP = ... ENVELOPE = ... function SOM(f,pt,pe) ... end PRX = ... TRANSICAO_NOTAS = ... TRANSICAO_TIMBRE = ...    (o que for redefinido)
escala_justa()  ou  escala_temperada()
talvez uma definição de função , por exemplo  U(a,...,b)  que retorna trecho de áudio (assim como  O e Ar)
f = ll(ini,f,prx,fim) .. ... .. O(...) ... .. Ar(...) ... .. expressão ... .. U(a,...,b) .. ... .. g .. h .. ...
wav.criar_arquivo( f , caminho e nome (opcional))           ( talvez seja melhor , por exemplo ,  8 * f )
---------------------------------------------------------------------------------------------------
exemplos:  (substituir a definição de  f  no modelo acima por uma das abaixo)
f = SIN(FREQ*Xl) ------------- f = SIN(FREQ*Xl) .. 2*SIN(FREQ*Xl) .. 3*SIN(FREQ*Xl)  -- volume muda ------------- f = SIN(FREQ*((2*Xl) ^ (3*Xl)))     -- lembrar que " ^ " aqui não é potenciação , o parenteses é necessário  porque de qualquer forma  " ^ "  tem prioridade maior que  " * " ------------- f = SIN(FREQ*((.5*Xl*Xl) ^ Xl)) ------------- f = SIN(FREQ*A) ------------- f = ll( SIN(FREQ*Xl) , .5 ) .. ll( SIN(FREQ*2*Xl) , .5 ) .. ll( SIN(FREQ*3*Xl) , .5 ) ------------- f = ll( SIN(FREQ*Xl) , .5 ,1) .. ll( SIN(FREQ*2*Xl) , .5 , 1 ) .. ll( SIN(FREQ*3*Xl) , .5 , 1 ) ------------- f = (IEXP/.5)*ll( SIN(FREQ*Xl) , .5 ,2) .. (IEXP/.5)*ll( SIN(FREQ*2*Xl) , .5 , 2 ) .. (IEXP/.5)*ll( SIN(FREQ*3*Xl) , .5 , 2 ) ------------- f = ll( SIN(.5*FREQ*4*Xl) , .5 ,1) + ll( SIN(.5*FREQ*5*Xl) , .5 ,1) + ll( SIN(.5*FREQ*6*Xl) , .5 ,1) ------------- f = ll( SIN(2*FREQ*(2^(0/12))*Xl) , .5 ,1) + ll( SIN(2*FREQ*(2^(4/12))*Xl) , .5 ,1) + ll( SIN(2*FREQ*(2^(7/12))*Xl) , .5 ,1) ------------- f = (ll( SIN(.5*FREQ*4*Xl) , .5) + ll( SIN(.5*FREQ*5*Xl) , .5)) .. (ll( SIN(.5*FREQ*5*Xl) , .5) + ll( SIN(.5*FREQ*6*Xl) , .5)) ------------- f = (ll( SIN(.5*FREQ*4*Xl) , .5) .. ll( SIN(.5*FREQ*5*Xl) , .5))    -- resulta no mesmo que o anterior    +    (ll( SIN(.5*FREQ*5*Xl) , .5) .. ll( SIN(.5*FREQ*6*Xl) , .5)) -------------
abaixo , fazer  escala_justa()  ou  escala_temperada()
f = Ar(3,Do,mi,sol,Doa) ------------- f = Ar(3 , {3/2},Do, {1/2},re, {3/2},mi, {1/2},fa, {3/2},sol, {1/2},fa, {3/2},mi, {1/2},re, {3/2},Do) ------------- f = Ar(3,o(Do,1,0),sol,mi,Do,mi,sol,mi,Do,mi,sol,o(Doa,1,2)) -- para a função  ONDA  que vem pré-definida , varie o primeiro parametro de timbre mais ou menos entre .125 e 1  e o segundo entre 0 e 4 ------------- f = O(Do,mi,sol,Doa) ------------- f = O( {env = 1} ,Do,mi,sol,Doa) ------------- ENVELOPE = 1    f = O(Do,mi,sol,Doa) .. O(mi,sol,Doa,mia) ------------- ENVELOPE = 1    f = O( {fim = 2} ,Do,mi,sol,Doa) .. O( {fim = 2} ,mi,sol,Doa,mia) -------------
f = O({env=1},Do,re,mi,fa,{2,trn = A_},sol,la,si,Doa) ------------- f = Ar(3,{env = IEXP/.125},Do,re,mi,fa,{2,env = IEXP/.5},sol,la,si,Doa) ------------- ENVELOPE = 1  z = .125  f = O({2},o(Do,1,0),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(Do,1,4),o,o,o,o(Do,1,2)) ------------- z = .125  f = Ar(3,{2},o(Do,1,0),o(o,z,o),o(mi,1,o),o(o,z,o),o(Do,1,o),o(o,z,2),o(mi,1,o),o(o,z,o),o(Do,1,4),o,o,o,o(Doa,1,2))
-------------
z = .125 f = O({2},o(Do,1,0),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(Do,1,4),o,o,o,o(Do,1,2))    +    O({2},o(mi,1,0),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(fa,1,4),o,o,o,o(fa,1,2))    +    O({2},o(sol,1,0),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(la,1,4),o,o,o,o(la,1,2))    +    O({2},o(Doa,1,0),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(o,1,o),o(o,z,o),o(Doa,1,4),o,o,o,o(Doa,1,2))
-------------
TRANSICAO_NOTAS = A_ ENVELOPE = .5 + .5*IEXP/.5 FIM = 1 f =       ( O(Do,Do,mi) .. O(sol) .. O(sol,sol,mi) .. O(Do) .. O(Do,Do,mi)         ..         O(Do,Do,mi) .. O(sol) .. O(sol,sol,mi) .. O(Do) .. O(Do,Do,mi)         ..         O(Do,Do,mi) .. O(Do) ..  O(sol) .. O({4},Doa)       )    +      ( O(aDo,aDo,bsol) .. O(bsol) .. O(bsol,bsol,aDo) .. O({3},aDo)         ..         O(aDo,aDo,bsol) .. O(bsol) .. O(bsol,bsol,aDo) .. O({3},aDo)         ..         O(aDo,aDo,bsol) .. O({2},bsol) .. O({4},aDo)
      )
-------------
ENVELOPE = 1 + 5*IEXP/.125 e = {} f = O(Do,mi,Do,mi,{e},Do,mi,Do,mi,Do,{e},mi,Do,mi,{e},Do,mi,Do,mi,Do,{e},mi,Do,mi,{e},Do,mi,Do,mi)
-------------
ENVELOPE = wav.direita((S .. (D/2))/.5,-.5)
f = Ar(3,Do,mi,sol,Doa)
-------------
ENVELOPE = wav.direita((S .. (D/2))/.5,-.5)
f = O(Do,mi,sol,Doa)
]]
-- início do script
min = math.min    max = math.max floor = math.floor
if  math.fmod  then  function mod(a,b)  return( math.fmod( math.fmod(a,b) + b , b ) )  end       -- agora lua tem o operador " % " else                 function mod(a,b)  return( math. mod( math. mod(a,b) + b , b ) )  end    end
ceil = math.ceil
Dpi = 8*math.atan(1)
sin = function(x)  return math.sin(Dpi*x)  end
cos = function(x)  return math.cos(Dpi*x)  end
exp = math.exp
wrap = coroutine.wrap    yield = coroutine.yield
function mostre(t,mrgp)     -- mostra t  não é usada no script    local write = io.write    local mrg = '    '    if  mrgp  then  mrg = mrg .. mrgp  end    if  type(t) == 'table'  then        print(mrg .. '{ ')            for  i , v in t  do                write(mrg)  mostre(i)  write(mrg)  print(' = ')  mostre(v,mrg)  write(mrg)  print('------')            end        print(mrg .. ' }')    else        write(mrg)  print(t)    end end
wav = {}
toint= function(n)  if 0<=n then return(floor(n+0.5)) end                       return(  ceil(n -0.5))  end
div= function(n,d)  return(floor(n/d))  end
wav.byte= function(n)  n = floor(.5+n)    if  n < 0  then  n = 0  end    if  255 < n  then  n = 255  end  return(  assert(loadstring(  "return('\\" .. n .. "')"  ))()  )  end
wav.doisbytes= function(n)  local byte = wav.byte  local nb=0  local qb=""  local nr=n  while nb<2 do    qb=qb .. byte(mod(nr,256))    nr=div(nr,256)    nb=nb+1    end  return(qb)  end
wav.quatrobytes= function(n)  local byte = wav.byte  local nb=0  local qb=""  local nr=n  while nb<4 do    qb=qb .. byte(mod(nr,256))    nr=div(nr,256)    nb=nb+1    end  return(qb)  end
function wav.criar_arquivo(esp,onde)
 esp = esp:c()
 local inicio  if  -(1/0) < esp.ini  then  inicio = min(esp.ini,0)  else  inicio = 0  end  local duracao = esp.fim - inicio
 local NumChannels=1  local SignificantBitsPerSample=16  local SampleRate=11025  --local SampleRate=22050  local BlockAlign = (SignificantBitsPerSample / 8)* NumChannels  local AvgBytesPerSec = SampleRate * BlockAlign  local numerodeamostras=toint(SampleRate*duracao)  if mod(numerodeamostras,2)==1 then numerodeamostras=numerodeamostras-1 end  local DataSize=NumChannels*numerodeamostras*SignificantBitsPerSample / 8  local FileSize=44+DataSize  local h1="RIFF"  local h2=wav.quatrobytes(FileSize-8)  local h3="WAVE"  local f1="fmt "  local f2=wav.quatrobytes(16)  local f3=wav.doisbytes(1)  local f4=wav.doisbytes(NumChannels)  local f5=wav.quatrobytes(SampleRate)  local f6=wav.quatrobytes(AvgBytesPerSec)  local f7=wav.doisbytes(BlockAlign)  local f8=wav.doisbytes(SignificantBitsPerSample)  local d1="data"  local d2=wav.quatrobytes(DataSize)  local d3=""
 local arq  if  onde  then  arq = io.open(onde,"wb")  else  arq = io.open("arq.wav","wb")  end  arq:write(h1 .. h2 .. h3 .. f1 .. f2 .. f3 .. f4 .. f5 .. f6 .. f7 .. f8 .. d1 .. d2)
 local stp=1/SampleRate  local t=0  local i=1
 local doisbytes = wav.doisbytes  while i<numerodeamostras do    t_global = t + inicio    local v = toint(esp(t + inicio)*256)    v = mod(v + 2^16,2^16)    arq:write(doisbytes(v))
   t=t+stp    i=i+1    end  arq:close()  end
function wav.res_ini(fini,gini)    if  fini == -(1/0)  then  return(gini)  end    if  gini == -(1/0)  then  return(fini)  end    return(min(fini,gini)) end
function wav.res_fim(ffim,gfim)    if  ffim == (1/0)  then  return(gfim)  end    if  gfim == (1/0)  then  return(ffim)  end    return(max(ffim,gfim)) end
function wav.res_prx(fprox,gprox)    return(max(fprox,gprox)) end
function wav.fun_c(f)    if  type(f) == "function"  then  return f  end    return f:c()    end
function wav.copia_geral(f)    local r = { ini = f.ini , prx = f.prx , fim = f.fim , fun = f.fun , c = f.c }    setmetatable(r,wav.funmt)    return r    end
function wav.conc(f,t,prx)        local conc = wav.conc    local conccont = wav.conccont        local r    local s        local t0 = t
       if  f.g  then
               while  1  do                        while  f.f.fim < t - prx  do  if   t - prx - f.f.prx < f.g.ini  then  s , t = yield(0)  else  t = conc(f.g , t , prx + f.f.prx )  end    end                         if  t < t0  then  return t  end                         r = f.f(t - prx)                         if  f.g.ini < t - prx - f.f.prx  then  r = r + f.g(t - prx - f.f.prx)  end                         s , t = yield(r)                         end
       elseif  f.h  then
               local yf = f.f(f.f.prx)                while  1  do                        while  f.f.fim < t - prx  do  if   t - prx - f.f.prx < f.h.ini  then  s , t = yield(0)  else  t = conccont(f.h , t , prx + f.f.prx , yf )  end    end                         if  t < t0  then  return t  end                         r = f.f(t - prx)                         if  f.h.ini < t - prx - f.f.prx  then  r = r + yf + f.h(t - prx - f.f.prx)  end                         s , t = yield(r)                         end
       else
               t0 = t                while  1  do                         if  t < t0  then  return t  end                         s , t = yield(f:fun(t - prx))                        end
               end
       end
function wav.conccont(f,t,prx,y)        local conc = wav.conc    local conccont = wav.conccont        local r    local s        local t0 = t
       if  f.g  then
       while  1  do                while  f.f.fim < t - prx  do  if   t - prx - f.f.prx < f.g.ini  then  s , t = yield(0)  else  t = conc(f.g , t , prx + f.f.prx , y )  end    end                 if  t < t0  then  return t  end                 r = y + f.f(t - prx)                 if  f.g.ini < t - prx - f.f.prx  then  r = r + f.g(t - prx - f.f.prx)  end                 s , t = yield(r)                 end
       elseif  f.h  then
               local yf = f.f(f.f.prx)                while  1  do                        while  f.f.fim < t - prx  do  if   t - prx - f.f.prx < f.h.ini  then  s , t = yield(0)  else  t = conccont(f.h , t , prx + f.f.prx , y + yf )  end    end                         if  t < t0  then  return t  end                         r = y + f.f(t - prx)                         if  f.h.ini < t - prx - f.f.prx  then  r = r + yf + f.h(t - prx - f.f.prx)  end                         s , t = yield(r)                         end
       else
               t0 = t                while  1  do                         if  t < t0  then  return t  end                         s , t = yield(y + f:fun(t - prx))                         end
               end
       end
function wav.funcall(f,p,lim)
       if  type(p) == "table"  then
              if  getmetatable(p) ~= wav.funmt  then  return getmetatable(p).__call(f,p)  end
               r =                        {                        ini   = p.ini ,                        prx = p.prx  ,                        fim = p.fim ,                        fun = function(s,t)  return f(p(t))  end ,                        c = function(s)                            local cf = f:c()  local cp = p:c()                            local r = { ini = s.ini , prx = s.prx , fim = s.fim , fun = function(s,t)  return cf(cp(t))  end , c = s.c }                            setmetatable(r,wav.funmt)                            return r                            end                        }  setmetatable(r,wav.funmt)                return r                end
       if  lim  then                if  f.ini < p  and  p < f.fim  then  return f:fun(p)  end                return 0                end
       return f:fun(p)
       end
wav.fcr = function(s,t)    local conc = wav.conc    while 1 do  t = conc(s,t,0)    end    end
function wav.funconc(f,g)
   if  getmetatable(g) ~= wav.funmt  then  return getmetatable(g).__concat(f,g)  end
   if  g == Z  then  return f  end    local r =        {        ini = min(f.ini,g.ini + f.prx) ,        prx = max(f.prx,g.prx + f.prx) ,        fim = max(f.fim,g.fim + f.prx) ,        f = f ,        g = g        }    r.fun = wrap(wav.fcr)    r.c =    function(s)        local r = { ini = s.ini , prx = s.prx , fim = s.fim , f = s.f:c() , g = s.g:c() , c = s.c , fun = wrap(wav.fcr) }        setmetatable(r,wav.funmt)        return r        end    setmetatable(r,wav.funmt)    return r    end
wav.fcrc = function(s,t)    local conccont = wav.conccont    while  1  do  t = conccont(s,t,0,0)  end     end
function wav.funconccont(f,h)
   if  getmetatable(h) ~= wav.funmt  then  return getmetatable(h).__pow(f,h)  end
   if  h == Z  then  return f  end    local r =        {        ini = min(f.ini,h.ini + f.prx) ,        prx = max(f.prx,h.prx + f.prx) ,        fim = max(f.fim,h.fim + f.prx) ,        f = f ,        h = h        }    r.fun = wrap(wav.fcrc)    r.c =    function(s)        local r = { ini = s.ini , prx = s.prx , fim = s.fim , f = s.f:c() , h = s.h:c() , c = s.c , fun = wrap(wav.fcrc) }        setmetatable(r,wav.funmt)        return r        end    setmetatable(r,wav.funmt)    return r    end
function wav.transffun(s,t)    return (s.am*s.ftr((t-s.t0)/s.es) + s.y)    end
function wav.transfc(s)    local r = { ini = s.ini , prx = s.prx , fim = s.fim , fun = wav.transffun , c = wav.transfc , t0 = s.t0 , es = s.es , am = s.am , y = s.y , ftr = s.ftr:c() }    setmetatable(r,wav.funmt)    return r    end
function wav.funy(f,y)    local r =        {        ini = f.ini ,        prx = f.prx ,        fim = f.fim ,        fun = wav.transffun ,        c = wav.transfc ,        transf = 1        }  setmetatable(r,wav.funmt)        if  f.transf  then            r.t0 = f.t0            r.es = f.es            r.am = f.am            r.y = f.y + y            r.ftr = f.ftr        else            r.t0 = 0            r.es = 1            r.am = 1            r.y = y            r.ftr = f            end    return r    end
function wav.funam(f,am)    local r =        {        ini = f.ini ,        prx = f.prx ,        fim = f.fim ,        fun = wav.transffun ,        c = wav.transfc ,        transf = 1        }  setmetatable(r,wav.funmt)        if  f.transf  then            r.t0 = f.t0            r.es = f.es            r.am = am*f.am            r.y = am*f.y            r.ftr = f.ftr        else            r.t0 = 0            r.es = 1            r.am = am            r.y = 0            r.ftr = f            end    return r    end
function wav.funesc(f,e)    local r =        {        ini = e*f.ini ,        prx = e*f.prx ,        fim = e*f.fim ,        fun = wav.transffun ,        c = wav.transfc ,        transf = 1        }  setmetatable(r,wav.funmt)        if  f.transf  then            r.t0 = e*f.t0            r.es = e*f.es            r.am = f.am            r.y = f.y            r.ftr = f.ftr        else            r.t0 = 0            r.es = e            r.am = 1            r.y = 0            r.ftr = f            end    return r    end
function wav.fununm(f)    local r =        {        ini = f.ini ,        prx = f.prx ,        fim = f.fim ,        fun = wav.transffun ,        c = wav.transfc ,        transf = 1        }  setmetatable(r,wav.funmt)        if  f.transf  then            r.t0 = f.t0            r.es = f.es            r.am = -f.am            r.y = -f.y            r.ftr =f.ftr        else            r.t0 = 0            r.es = 1            r.am = -1            r.y = 0            r.ftr = f            end    return r    end
function wav.direita(f,d)    local r =        {        ini = f.ini + d ,        prx = f.prx + d ,        fim = f.fim + d ,        fun = wav.transffun ,        c = wav.transfc ,        transf = 1        }  setmetatable(r,wav.funmt)        if  f.transf  then            r.t0 = f.t0 + d            r.es = f.es            r.am = f.am            r.y = f.y            r.ftr = f.ftr        else            r.t0 = d            r.es = 1            r.am = 1            r.y = 0            r.ftr = f            end    return r    end
function wav.opcopia(s)    local r = { ini = s.ini , prx = s.prx , fim = s.fim , fun = s.fun , c = s.c , o1 = s.o1:c() }    if  type(s.o2) == 'function'  then  r.o2 = s.o2  else  r.o2 = s.o2:c()  end    setmetatable(r,wav.funmt)    return r    end
function wav.addfun(s,t)    return  s.o1(t) + s.o2(t)    end
function wav.funadd(f,g)    if  type(f) == "number"  then  return wav.funy(g,f)  end    if  type(g) == "number"  then  return wav.funy(f,g)  end    if  getmetatable(g) ~= wav.funmt  then  return getmetatable(g).__add(f,g)  end
   local r
   if  type(f) == 'function'  then  return wav.funadd(g,f)  end
   if  type(g) == 'function'  then        r = { ini = f.ini , prx = f.prx , fim = f.fim }    else        r = { ini = wav.res_ini(f.ini,g.ini) , prx = wav.res_prx(f.prx,g.prx) , fim = wav.res_fim(f.fim,g.fim) }        end
   r.o1 = f    r.o2 = g    r.fun = wav.addfun    r.c = wav.opcopia
   setmetatable(r,wav.funmt)    return r    end
function wav.mulfun(s,t)    return  s.o1(t) * s.o2(t)    end
function wav.funmul(f,g)    if  type(f) == "number"  then  return wav.funam(g,f)  end    if  type(g) == "number"  then  return wav.funam(f,g)  end    if  getmetatable(g) ~= wav.funmt  then  return getmetatable(g).__mul(f,g)  end
   local r
   if  type(f) == 'function'  then  return wav.funmul(g,f)  end
   if  type(g) == 'function'  then        r = { ini = f.ini , prx = f.prx , fim = f.fim }    else        r = { ini = wav.res_ini(f.ini,g.ini) , prx = wav.res_prx(f.prx,g.prx) , fim = wav.res_fim(f.fim,g.fim) }        end
   r.o1 = f    r.o2 = g    r.fun = wav.mulfun    r.c = wav.opcopia
   setmetatable(r,wav.funmt)    return r    end
function wav.subfun(s,t)    return s.o1(t) - s.o2(t)    end
function wav.funsub(f,g)    if  type(f) == "number"  then  return wav.funy(wav.fununm(g),f)  end    if  type(g) == "number"  then  return wav.funy(f,-g)  end    if  type(f) == 'function'  then  f = wav.ll(f)  end    if  getmetatable(g) ~= wav.funmt  then  return getmetatable(g).__sub(f,g)  end
   local r
   if  type(g) == 'function'  then        r = { ini = f.ini , prx = f.prx , fim = f.fim }    else        r = { ini = wav.res_ini(f.ini,g.ini) , prx = wav.res_prx(f.prx,g.prx) , fim = wav.res_fim(f.fim,g.fim) }        end
   r.o1 = f    r.o2 = g    r.fun = wav.subfun    r.c = wav.opcopia
   setmetatable(r,wav.funmt)    return r    end
function wav.POWfun(s,t)    return s.o1(t) ^ s.o2(t)    end
function wav.POW(f,g)    if  type(f) == "number"  then  f = f*wav.UM  end    if  type(g) == "number"  then  g = g*wav.UM  end    if  type(f) == 'function'  then  f = wav.ll(f)  end    if  type(g) == 'function'  then  g = wav.ll(g)  end    if  getmetatable(g) ~= wav.funmt  then  return getmetatable(g).__sub(f,g)  end
   local r
   r = { ini = wav.res_ini(f.ini,g.ini) , prx = wav.res_prx(f.prx,g.prx) , fim = wav.res_fim(f.fim,g.fim) }
   r.o1 = f    r.o2 = g    r.fun = wav.POWfun    r.c = wav.opcopia
   setmetatable(r,wav.funmt)    return r    end
wav.funmt =    {  nome = 'funmt' ,    __concat  =  wav.funconc ,    __pow      =  wav.funconccont  ,    __add       =  wav.funadd  ,    __mul       =  wav.funmul ,    __div        =  wav.funesc ,    __sub       =  wav.funsub  ,    __unm      =  wav.fununm  ,    __call       =   wav.funcall    }
function wav.ll(a,b,c,d)    local ini , f ,prx , fim    local cf    if  type(a) == 'number'  then        ini = a   f = b   prx = c   fim = d    else        f = a      if  (type(f) == 'table')  then  ini = f.ini  else  ini = -(1/0)  end         prx = b  fim = c        end    if  not prx  then  prx = -(1/0)  end    if  not fim  then  if  -(1/0) < prx  then  fim = prx  else  fim = (1/0)  end  end    if  type(f) == "function"  then        cf = { fun = function(s,t)  return f(t)  end , c = wav.copia_geral }  setmetatable(cf,wav.funmt)    else        cf = f:c()        end    cf.ini = ini    cf.prx = prx    cf.fim = fim    return cf    end
wav.Z = {}
function wav.vzadd(vz,f)    if  type(f) == 'number'  then  return wav.ll(function(s,t)  return(f)  end)  end    if  type(f) == 'function'  then  return wav.ll(f)  end    return f    end
function wav.vzmul(vz,f)    if  type(f) == 'number'  then  return wav.ll(function(s,t)  return(f)  end)  end    if  type(f) == 'function'  then  return wav.ll(f)  end    return f    end
function wav.vzsub(vz,f)    if  type(f) == 'number'  then  return wav.ll(function(s,t)  return(-f)  end)  end    if  type(f) == 'function'  then  return -wav.ll(f)  end    return -f    end
function wav.vzconc(vz,f)    if  type(f) == 'number'  then  return wav.ll(function(s,t)  return(f)  end)  end    if  type(f) == 'function'  then  return wav.ll(f)  end    return f    end
function wav.vzconccont(vz,f)    if  type(f) == 'number'  then  return wav.ll(function(s,t)  return(f)  end)  end    if  type(f) == 'function'  then  return wav.ll(f)  end    return f    end
function wav.vzesc(fz,e)    return wav.Z    end
function wav.vzunm(vz)    return wav.Z    end
function wav.vzcall(vz,p)    if  type(p) == 'table'  then  return wav.Z  end    return 0    end
wav.vzmetatable =    {  nome = 'vzmetatable' ,     __add      = wav.vzadd ,     __sub      = wav.vzsub ,     __mul      = wav.vzmul ,     __unm     = wav.vzunm ,     __concat = wav.vzconc ,     __pow     = wav.vzconccont ,     __div        = wav.vzesc ,     __call       = wav.vzcall    }
setmetatable(wav.Z,wav.vzmetatable)
wav.sobe = function(x) if x <= 0 then return(0) end if 1 <= x  then return(1) end return(exp(-1/x)/(exp(-1/x) + exp(-1/(1-x)))) end
wav.desce = function(x) if x <= 0 then return(1) end if 1 <= x  then return(0) end return(1 - exp(-1/x)/(exp(-1/x) + exp(-1/(1-x)))) end
-- x/(1+x-y)
-- exp(-1/x)/(1+exp(-1/x)-(1-exp(-1/(1-x))))  =  exp(-1/x)/(exp(-1/x) + exp(-1/(1-x)))
function wav.acelera(x)    local r = 0    if  x <= 0  then  return 0  end    if  1 <= x  then  return -.5 + x  end    local X    for  i = 1 , 31 , 2  do    X = x*i/32    r = r + 4*exp(-1/X)/(exp(-1/X) + exp(-1/(1-X)))    end    for  i = 2 , 30 , 2  do    X = x*i/32    r = r + 2*exp(-1/X)/(exp(-1/X) + exp(-1/(1-X)))    end    r = r + exp(-1/x)/(exp(-1/x) + exp(-1/(1-x)))    return x*r/(32*3)    end
function wav.INV(f)    local r =    {    ini = f.ini ,    prx = f.prx ,    fim = f.fim ,    fun = function(s,t)  return 1/f(t)  end ,    c =    function(s)        local cf = f:c()        local r = { ini = s.ini , prx = s.prx , fim = s.fim , fun = function(s,t)  return 1/cf(t)  end , c = s.c }        setmetatable(r,wav.funmt)        return r        end    }  setmetatable(r,wav.funmt)    return r    end
--[[ function wav.POW(f,n)    local r =    {    ini = f.ini ,    prx = f.prx ,    fim = f.fim ,    fun = function(s,t)  return f(t)^n  end ,    c =    function(s)        local cf = f:c()        local r = { ini = s.ini , prx = s.prx , fim = s.fim , fun = function(s,t)  return cf(t)^n  end , c = s.c }        setmetatable(r,wav.funmt)        return r        end    }  setmetatable(r,wav.funmt)    return r    end ]]
function wav.loopfun(s,t)    local r = 0    local prx = s.cf[s.l1].prx    t = mod( t , prx )    for  i = s.l1 , s.l2  do    r = r + s.cf[i]( t - i*prx , 1 )    end    return r    end
function wav.loopc(s)    local r =        {        ini = s.ini , prx =s.prx , fim = s.fim ,        fun = s.fun , c = s.c ,        l1 = s.l1 , l2 = s.l2        }        r.cf = {}        for  i = s.l1 , s.l2  do    r.cf[i] = s.cf[i]:c()    end        setmetatable(r,wav.funmt)        return r    end
function wav.loop(f)    local r =        {        ini = -(1/0) , prx = -(1/0) , fim = (1/0) ,        fun = wav.loopfun ,        c = wav.loopc ,        l1 = toint((mod(f.fim,f.prx) - f.fim)/f.prx) ,              -- mod  diferente de  math.mod        l2 = toint((mod(f.ini,f.prx) - f.ini)/f.prx) ,        }      r.cf = {}      for  i = r.l1 , r.l2  do    r.cf[i] = f:c()    end      setmetatable(r,wav.funmt)      return r    end
function wav.crcmpcall(cr,...)    local r    for  i = 1 , arg.n  do    r = cr[1](arg[i])    end    return r    end
wav.crcmpmt = { __call = wav.crcmpcall }
function wav.crcmp(cr1,cr2)    local r = { function(n)        local r        r = cr2[1](n)        if  r  then  r = cr1[1](r)  end        return r        end }  setmetatable(r,wav.crcmpmt)    return r    end
wav.crcmpmt.__mul = wav.crcmp
function wav.referencia(fat)    local r =        {        wrap(function(n)            local r , y            while  1  do    r , y = fat(r,n)    n = yield(y)    end           end)        }  setmetatable(r,wav.crcmpmt)    return r    end
function wav.fate(fat,tipo,fim)    return function(x,n)        if  n == fim  then  return nil , x  end        if  tipo and (type(n) ~= tipo) and ((type(n) ~= 'table') or (not n[tipo]))  then  return x , n  end        return fat(x,n) , nil        end    end
function wav.fatd(fat,tipo,fim)    return function(x,n)        if  n == fim  then            local nx            for  i = table.getn(x) , 1 , -1  do    nx = fat(nx,x[i])    end            return nil , nx            end        if  tipo and (type(n) ~= tipo) and ((type(n) ~= 'table') or (not n[tipo]))  then  return x , n  end        if  not x  then  return { n } , nil  end        x[table.getn(x)+1] = n        return  x , nil        end    end
function wav.zero(x) return 0  end function wav.um(x)  return 1  end function wav.iexp(t)  return 1/exp(t)  end function wav.identidade(x)  return x  end function wav.tempo_global()  return t_global  end
wav.SIN  = wav.ll(sin) wav.COS  = wav.ll(cos) wav.EXP = wav.ll(exp) wav.IEXP = wav.ll(wav.iexp) wav.ZERO = wav.ll(wav.zero) wav.UM   = wav.ll(wav.um) wav.X    = wav.ll(wav.identidade) wav.Xl   = wav.ll(0,wav.identidade,1,1) wav.I    = wav.ll(0,wav.zero,1,1) wav.S    = wav.ll(0,wav.sobe,1,1) wav.D    = wav.ll(0,wav.desce,1,1) wav.A    = wav.ll(0,wav.acelera,1,1) wav.T    = wav.ll(wav.tempo_global)
wav.df_f_mt = { nome = 'df_f_mt' }
function wav.df_f_add(f1,f2)    local r    if  type(f1) == 'number'  then  r = { df =         f2.df  ,  f = f1   + f2.f } setmetatable(r,wav.df_f_mt)  return r  end    if  type(f2) == 'number'  then  r = { df = f1.df          ,  f = f1.f + f2   } setmetatable(r,wav.df_f_mt)  return r  end    if  getmetatable(f2) ~= wav.df_f_mt  then  return getmetatable(f2).__add(f1,f2)  end                                    r = { df = f1.df + f2.df  ,  f = f1.f + f2.f } setmetatable(r,wav.df_f_mt)  return r    end
function wav.df_f_sub(f1,f2)    local r    if  type(f1) == 'number'  then  r = { df =       - f2.df  ,  f = f1   - f2.f } setmetatable(r,wav.df_f_mt)  return r  end    if  type(f2) == 'number'  then  r = { df = f1.df          ,  f = f1.f - f2   } setmetatable(r,wav.df_f_mt)  return r  end    if  getmetatable(f2) ~= wav.df_f_mt  then  return getmetatable(f2).__sub(f1,f2)  end                                    r = { df = f1.df - f2.df  ,  f = f1.f - f2.f } setmetatable(r,wav.df_f_mt)  return r    end
function wav.df_f_unm(f)    local r = { df = - f.df  ,  f = - f.f }  setmetatable(r,wav.df_f_mt)  return r    end
function wav.df_f_mul(f1,f2)    local r    if  type(f1) == 'number'  then  r = { df = f1    * f2.df  ,  f = f1   * f2.f } setmetatable(r,wav.df_f_mt)  return r  end    if  type(f2) == 'number'  then  r = { df = f1.df * f2     ,  f = f1.f * f2   } setmetatable(r,wav.df_f_mt)  return r  end    if  getmetatable(f2) ~= wav.df_f_mt  then  return getmetatable(f2).__mul(f1,f2)  end                                    r = { df = f1.df * f2.f  +  f1.f * f2.df  ,  f = f1.f * f2.f }  setmetatable(r,wav.df_f_mt)  return r    end
function wav.df_f_cnc(f1,f2)    if  getmetatable(f2) ~= wav.df_f_mt  then  return getmetatable(f2).__concat(f1,f2)  end    local r = { df = f1.df .. f2.df  , f = f1.f .. f2.f }  setmetatable(r,wav.df_f_mt)    return r    end
function wav.df_f_cncc(f1,f2)    if  getmetatable(f2) ~= wav.df_f_mt  then  return getmetatable(f2).__pow(f1,f2)  end    local r = { df = f1.df .. f2.df  ,  f = f1.f ^ f2.f  }  setmetatable(r,wav.df_f_mt)    return r    end
function wav.df_f_div(f,n)    if  type(n) == 'table'  then  return getmetatable(n).__div(f1,n)  end    local r = { df = f.df/n  ,  f = n*f.f/n }  setmetatable(r,wav.df_f_mt)  return r    end
wav.df_f_mt.__add = wav.df_f_add wav.df_f_mt.__sub = wav.df_f_sub wav.df_f_mt.__unm = wav.df_f_unm wav.df_f_mt.__mul = wav.df_f_mul wav.df_f_mt.__div = wav.df_f_div wav.df_f_mt.__concat = wav.df_f_cnc wav.df_f_mt.__pow = wav.df_f_cncc
wav.I_    = { df = wav.I                     ,  f = wav.I   }  setmetatable(wav.I_,wav.df_f_mt) wav.X_    = { df = wav.UM                    ,  f = wav.X   }  setmetatable(wav.X_,wav.df_f_mt) wav.Xl_   = { df = wav.ll(0,wav.um,1,1)      ,  f = wav.Xl  }  setmetatable(wav.Xl_,wav.df_f_mt)
wav.A_    = { df = wav.S                     ,  f = wav.A   }  setmetatable(wav.A_,wav.df_f_mt) -- wav.S_ = ... -- wav.D_ = ... wav.Z_    = { df = wav.Z                     , f = wav.Z    }  setmetatable(wav.Z_,wav.df_f_mt) wav.SIN_  = { df = Dpi*wav.COS               , f = wav.SIN  }  setmetatable(wav.SIN_,wav.df_f_mt) wav.COS_  = { df = - Dpi*wav.SIN             , f = wav.COS  }  setmetatable(wav.COS_,wav.df_f_mt) wav.UM_   = { df = wav.ZERO                  , f = wav.UM   }  setmetatable(wav.UM_,wav.df_f_mt) wav.ZERO_ = { df = wav.ZERO                  , f = wav.ZERO }  setmetatable(wav.ZERO_,wav.df_f_mt)
function wav.escala_justa()    -- re menor  =  rm , fa , la    ,    sol maior = sol , si , re    dDo = (1/16)*1  dre = (1/16)*9/8  dmi = (1/16)*5/4  dfa = (1/16)*4/3  dsol = (1/16)*3/2  dla = (1/16)*5/3  dsi = (1/16)*15/8  dst  = (1/16)*(7/4)  drm  = (1/16)*(20/9)/2    cDo = (1/8)*1   cre = (1/8)*9/8   cmi = (1/8)*5/4   cfa = (1/8)*4/3   csol = (1/8)*3/2   cla = (1/8)*5/3   csi = (1/8)*15/8   cst  =  (1/8)*(7/4)  crm  =  (1/8)*(20/9)/2    bDo = .25*1     bre = .25*9/8     bmi = .25*5/4     bfa = .25*4/3     bsol = .25*3/2     bla = .25*5/3     bsi = .25*15/8     bst  =    .25*(7/4)  brm  =    .25*(20/9)/2    aDo = .5*1      are = .5*9/8      ami = .5*5/4      afa = .5*4/3      asol = .5*3/2      ala = .5*5/3      asi = .5*15/8      ast  =     .5*(7/4)  arm  =     .5*(20/9)/2
   Do = 1          re = 9/8          mi = 5/4          fa = 4/3          sol = 3/2          la = 5/3          si = 15/8          st  =          7/4    rm  =        (20/9)/2
   Doa =  2*1      rea =  2*9/8      mia =  2*5/4      faa =  2*4/3      sola =  2*3/2      laa =  2*5/3      sia =  2*15/8      sta =   2*(7/4)       rma =      2*(20/9)/2    Dob =  4*1      reb =  4*9/8      mib =  4*5/4      fab =  4*4/3      solb =  4*3/2      lab =  4*5/3      sib =  4*15/8      stb =   4*(7/4)       rmb =      4*(20/9)/2    Doc =  8*1      rec =  8*9/8      mic =  8*5/4      fac =  8*4/3      solc =  8*3/2      lac =  8*5/3      sic =  8*15/8      stc =   8*(7/4)       rmc =      8*(20/9)/2    Dod = 16*1      red = 16*9/8      mid = 16*5/4      fad = 16*4/3      sold = 16*3/2      lad = 16*5/3      sid = 16*15/8      std =  16*(7/4)       rmd =     16*(20/9)/2    end
function wav.escala_temperada()   --  rm  e  st  estão definidas para que o que tiver sido feito para escala justa possa ser usado com escala temperada    local f = function(n)  return 2^(n/12)  end
   dDo  = f(-48)  dDos  = f(-47)  dre  = f(-46)  dres  = f(-45)  dmi  = f(-44)  dfa  = f(-43)  dfas  = f(-42)  dsol  = f(-41)  dsols  = f(-40)  dla  = f(-39)  dlas  = f(-38)  dsi  = f(-37)    dst  = dlas     drm  = dre    cDo  = f(-36)  cDos  = f(-35)  cre  = f(-34)  cres  = f(-33)  cmi  = f(-32)  cfa  = f(-31)  cfas  = f(-30)  csol  = f(-29)  csols  = f(-28)  cla  = f(-27)  clas  = f(-26)  csi  = f(-25)    cst  = alas     crm  = are    bDo  = f(-24)  bDos  = f(-23)  bre  = f(-22)  bres  = f(-21)  bmi  = f(-20)  bfa  = f(-19)  bfas  = f(-18)  bsol  = f(-17)  bsols  = f(-16)  bla  = f(-15)  blas  = f(-14)  bsi  = f(-13)    bst  = blas     brm  = bre    aDo  = f(-12)  aDos  = f(-11)  are  = f(-10)  ares  = f(- 9)  ami  = f(- 8)  afa  = f(- 7)  afas  = f(- 6)  asol  = f(- 5)  asols  = f(- 4)  ala  = f(- 3)  alas  = f(- 2)  asi  = f(- 1)    ast  = alas     arm  = are
    Do  = f(  0)    Dos = f(  1)   re  = f(  2)   res  = f(  3)   mi  = f(  4)   fa  = f(  5)   fas  = f(  6)   sol  = f(  7)   sols  = f(  8)   la  = f(  9)   las  = f( 10)   si  = f( 11)     st  =  las      rm  =  re
    Doa = f( 12)   Dosa = f( 13)   rea = f( 14)   resa = f( 15)   mia = f( 16)   faa = f( 17)   fasa = f( 18)   sola = f( 19)   solsa = f( 20)   laa = f( 21)   lasa = f( 22)   sia = f( 23)     sta =  lasa     rma =  rea     Dob = f( 24)   Dosb = f( 25)   reb = f( 26)   resb = f( 27)   mib = f( 28)   fab = f( 29)   fasb = f( 30)   solb = f( 31)   solsb = f( 32)   lab = f( 33)   lasb = f( 34)   sib = f( 35)     stb =  lasb     rmb =  reb     Doc = f( 36)   Dosc = f( 37)   rec = f( 38)   resc = f( 39)   mic = f( 40)   fac = f( 41)   fasc = f( 42)   solc = f( 43)   solsc = f( 44)   lac = f( 45)   lasc = f( 46)   sic = f( 47)     stc =  lasc     rmc =  rec     Dod = f( 48)   Dosd = f( 49)   red = f( 50)   resd = f( 51)   mid = f( 52)   fad = f( 53)   fasd = f( 54)   sold = f( 55)   solsd = f( 56)   lad = f( 57)   lasd = f( 58)   sid = f( 59)     std =  lasd     rmd =  red    end
function wav.o_add(a,b)  if  getmetatable(b) == wav.n_fun  then  return wav.n_fun.__add(a,b)  else  return wav.o  end  end function wav.o_sub(a,b)  if  getmetatable(b) == wav.n_fun  then  return wav.n_fun.__sub(a,b)  else  return wav.o  end  end function wav.o_mul(a,b)  if  getmetatable(b) == wav.n_fun  then  return wav.n_fun.__mul(a,b)  else  return wav.o  end  end function wav.o_div(a,b)  if  getmetatable(b) == wav.n_fun  then  return wav.n_fun.__div(a,b)  else  return wav.o  end  end function wav.o_pow(a,b)  if  b ~= wav.o  then  return b  else  return a  end  end function wav.o_concat(a,b)  if  b ~= wav.o  then  return b  else  return a  end  end function wav.o_unm(a)  return wav.o  end function wav.o_call(a,...)  arg.n = nil  setmetatable(arg,wav.n_fun)  return arg  end
wav.o = {}
wav.o_mt = { __add = wav.o_add , __sub = wav.o_sub , __mul = wav.o_mul , __div = wav.o_div , __pow = wav.o_pow , __concat = wav.o_concat , __unm = wav.o_unm , __call = wav.o_call }
setmetatable(wav.o,wav.o_mt)
function wav.n_fun_add(f1,f2)    local r = {}    if  getmetatable(f1) ~= wav.n_fun  then        for  i,f2i in ipairs(f2)  do            r[i] = f1 + f2i            end    elseif  getmetatable(f2) ~= wav.n_fun  then        for  i,f1i in ipairs(f1)  do            r[i] = f1i + f2            end    else        for  i,f1i in ipairs(f1)  do            r[i] = f1i + f2[i]            end        end    setmetatable(r,wav.n_fun)    return r    end
function wav.n_fun_sub(f1,f2)    local r = {}    if  getmetatable(f1) ~= wav.n_fun  then        for  i,f2i in ipairs(f2)  do            r[i] = f1 - f2i            end    elseif  getmetatable(f2) ~= wav.n_fun  then        for  i,f1i in ipairs(f1)  do            r[i] = f1i - f2            end    else        for  i,f1i in ipairs(f1)  do            r[i] = f1i - f2[i]            end        end    setmetatable(r,wav.n_fun)    return r    end
function wav.n_fun_mul(f1,f2)    local r = {}    if  getmetatable(f1) ~= wav.n_fun  then        for  i,f2i in ipairs(f2)  do            r[i] = f1 * f2i            end    elseif  getmetatable(f2) ~= wav.n_fun  then        for  i,f1i in ipairs(f1)  do            r[i] = f1i * f2            end    else        for  i,f1i in ipairs(f1)  do            r[i] = f1i * f2[i]            end        end    setmetatable(r,wav.n_fun)    return r    end
function wav.n_fun_div(f1,v)    local r = {}    if  getmetatable(f1) ~= wav.n_fun  then        for  i,vi in ipairs(v)  do            r[i] = f1 / vi            end    elseif  getmetatable(v) ~= wav.n_fun  then        for  i,f1i in ipairs(f1)  do            r[i] = f1i / v            end    else        for  i,f1i in ipairs(f1)  do            r[i] = f1i / v[i]            end        end    setmetatable(r,wav.n_fun)    return r    end
function wav.n_fun_pow(f1,f2)    local r = {}    if  getmetatable(f1) ~= wav.n_fun  then        for  i,f2i in ipairs(f2)  do            r[i] = f1 ^ f2i            end    elseif  getmetatable(f2) ~= wav.n_fun  then        for  i,f1i in ipairs(f1)  do            r[i] = f1i ^ f2            end    else        for  i,f1i in ipairs(f1)  do            r[i] = f1i ^ f2[i]            end        end    setmetatable(r,wav.n_fun)    return r    end
function wav.n_fun_concat(f1,f2)    local r = {}    if  getmetatable(f1) ~= wav.n_fun  then        for  i,f2i in ipairs(f2)  do            r[i] = f1 .. f2i            end    elseif  getmetatable(f2) ~= wav.n_fun  then        for  i,f1i in ipairs(f1)  do            r[i] = f1i .. f2            end    else        for  i,f1i in ipairs(f1)  do            r[i] = f1i .. f2[i]            end        end    setmetatable(r,wav.n_fun)    return r    end
function wav.n_fun_unm(f)    local r = {}    for  i,fi in ipairs(f1)  do        r[i] = -fi        end    setmetatable(r,wav.n_fun)    return r    end
function wav.n_fun_call(f1,f2)    local r = {}    if  getmetatable(f1) ~= wav.n_fun  then        for  i,f2i in ipairs(f2)  do            r[i] = f1(f2i)            end    elseif  getmetatable(f2) ~= wav.n_fun  then        for  i,f1i in ipairs(f1)  do            r[i] = f1i(f2)            end    else        for  i,f1i in ipairs(f1)  do            r[i] = f1i(f2[i])            end        end    setmetatable(r,wav.n_fun)    return r    end
wav.n_fun = {  nome = 'n_fun' , __add = wav.n_fun_add , __sub = wav.n_fun_sub , __mul = wav.n_fun_mul , __div = wav.n_fun_div , __pow = wav.n_fun_pow , __concat = wav.n_fun_concat , __unm = wav.n_fun_unm , __call = wav.n_fun_call }
function wav.N(...)   arg.n = nil   setmetatable(arg,wav.n_fun)   return arg   end
function wav.l_n_fun_index(lnf1,nf2)  -- por exemplo (se N = wav.N)  {N(1,2,3),N(4,5,6),N(7,8,9)}[N(1,2,3)] = N(1,5,9)  se a metatable é  wav.l_n_fun    if  getmetatable(nf2) == wav.n_fun  then        local r = wav.N()        for  i,v in ipairs(nf2)  do    r[i] = lnf1[nf2[i]][i]    end        return r        end    end
wav.l_n_fun = { __index = wav.l_n_fun_index }
function wav.O(...)
   local nota = {}
   local arid = 1  for  i,v in ipairs(arg)  do    if  getmetatable(v) == wav.n_fun  then  arid = table.getn(v)  break  end    end
   for  i,v in ipairs(arg)  do        if  type(v) == 'number'  then            arg[i] = wav.o(arg[i])            if  arid  then    for  j = 2 , arid  do    arg[i][j] = wav.o    end    end            end        end
   for  i,v in ipairs(arg)  do        if  v == wav.o  then            arg[i] = wav.N()    for  j = 1 , arid  do    arg[i][j] = wav.o    end            end        end
   for  i,v in ipairs(arg)  do        if  getmetatable(v) == wav.n_fun  then  nota[i] = table.remove(v,1)  else  nota[i] = v  end        end    nota.n = table.getn(nota)
   setmetatable(arg,wav.l_n_fun)
   local function somal(a,b)  if  not a  then  return 1 + b  else  return a + b  end  end
   local un_tmp  =  UN_TMP    local futn = 1    local futa = wav.N()    for  i = 1 , arid  do    futa[i] = 1    end    local aceleracao = TRANSICAO_NOTAS    local transicao = TRANSICAO_TIMBRE    local env    if  type(ENVELOPE) == 'number'  then  env = ENVELOPE*wav.UM  else  env = ENVELOPE:c()  end    env.prx = un_tmp  env.fim = env.prx    envelope = env:c()    if  envelope.ini == -1/0  then  envelope.ini = 0  end    env.ini = 0    local renenv = false    local som   =   SOM    local prx = PRX    local fim = FIM    local parametros = {}
   if  type(nota[1]) == 'table' and nota[1] ~= wav.o  then        detalhes = table.remove(nota,1)    table.remove(arg,1)
       if  detalhes[1]       then            if  type(detalhes[1]) == 'number'  then  un_tmp = detalhes[1]  * UN_TMP  envelope.prx = un_tmp  envelope.fim = envelope.prx  env.prx = un_tmp  env.fim = env.prx            else  renenv = not renenv  end            end        if  detalhes[2]       then            if  type(detalhes[2]) == 'number'  then  un_tmp = detalhes[2]  * UN_TMP  envelope.prx = un_tmp  envelope.fim = envelope.prx  env.prx = un_tmp  env.fim = env.prx            else  renenv = not renenv  end            end
       if  detalhes.trn      then aceleracao = detalhes.trn           end        if  detalhes.trt      then  transicao = detalhes.trt           end        if  detalhes.prx      then        prx = detalhes.prx * un_tmp  end        if  detalhes.env      then            if  type(detalhes.env) == 'number'  then  env = detalhes.env*wav.UM  else  env = detalhes.env:c()  end            env.ini = 0  env.prx = un_tmp  env.fim = env.prx            envelope = env:c()            end        if  detalhes.som      then        som = detalhes.som           end        if  detalhes.fim      then        fim = detalhes.fim * un_tmp  end        for  i,v in pairs(detalhes)  do    parametros[i] = v    end        end
   local n = table.getn(nota)
   if  n == 1  then  nota[2] = nota[1]  arg[2] = arg[1]  nota.n = 2  arg.n = 2  end    if  (n == 2) and (type(nota[2]) == 'table' and nota[2] ~= wav.o)  then  nota[3] = nota[1]  arg[3] = arg[1]  nota.n = 3  arg.n = 3  end
   local Xd    local Ad
   local v = wav.Z_    local f = wav.Z_    local pt = wav.Z    local i = 2    while  nota[i]  do        if  type(nota[i]) == 'table' and nota[i] ~= wav.o  then            detalhes = table.remove(nota,i)    table.remove(arg,i)
       if  detalhes[1]       then            if  type(detalhes[1]) == 'number'  then  un_tmp = detalhes[1]  * UN_TMP  Xd = nil  Ad = nil  env.prx = un_tmp  env.fim = env.prx            else  renenv = not renenv  end            end        if  detalhes[2]       then            if  type(detalhes[2]) == 'number'  then  un_tmp = detalhes[2]  * UN_TMP  Xd = nil  Ad = nil  env.prx = un_tmp  env.fim = env.prx            else  renenv = not renenv  end            end
           if  detalhes.trn      then aceleracao = detalhes.trn           Ad = nil            end            if  detalhes.trt      then  transicao = detalhes.trt           end            if  detalhes.prx      then        prx = detalhes.prx * un_tmp  end            if  detalhes.env      then            if  type(detalhes.env) == 'number'  then  env = detalhes.env*wav.UM  else  env = detalhes.env:c()  end                env.ini = 0  env.prx = un_tmp  env.fim = env.prx                end            if  detalhes.som      then        som = detalhes.som           end            if  detalhes.fim      then        fim = detalhes.fim * un_tmp  end            for  i,v in pairs(detalhes)  do    parametros[i] = v    end            end
       if  nota[i] ~= wav.o  then            local dv = nota[i] - nota[i-futn]            if  not Xd  then  Xd = wav.Xl_/un_tmp  end            if  (dv ~= 0) and (not Ad)  then  Ad = aceleracao/un_tmp  end            if  dv == 0  then    f  =  f   ^  ((nota[i-futn]*Xd)/futn)            else                 f  =  f   ^  ((nota[i-futn]*Xd  +  dv * Ad)/futn)    end            if  2 < i  then  if  renenv  then  envelope = envelope .. env  else  envelope.prx = envelope.prx + un_tmp    envelope.fim = envelope.prx  end  end            futn = 1        else            futn = futn + 1            envelope.prx = envelope.prx + un_tmp    envelope.fim = envelope.prx            end
       pt =  pt  .. (arg[i-futa]  +  (arg[i] - arg[i-futa]) * transicao/(un_tmp*futa))        for  i,v in ipairs(arg[i])  do    if  v == wav.o  then  futa[i] = somal(futa[i],1)  else  futa[i] = 1  end    end
       i = i + 1        end
   local r
   f.ini = -1/0    r = envelope * som( f , pt , parametros )
   if  prx  then  r.prx = prx  end    if  fim  then  r.fim = fim  end
   return r
   end
function wav.Ar(prs,...)
   local nota = {}
   local arid = 1  for  i,v in ipairs(arg)  do    if  getmetatable(v) == wav.n_fun  then  arid = table.getn(v)  break  end    end
   for  i,v in ipairs(arg)  do        if  type(v) == 'number'  then            arg[i] = wav.o(arg[i])            for  j = 2 , arid  do    arg[i][j] = wav.o    end         ��  end        end
   for  i,v in ipairs(arg)  do        if  v == wav.o  then            arg[i] = wav.N()    for  j = 1 , arid  do    arg[i][j] = wav.o    end            end        end
   for  i,v in ipairs(arg)  do        if  getmetatable(v) == wav.n_fun  then  nota[i] = table.remove(v,1)  else  nota[i] = v  end        end    nota.n = table.getn(nota)
   setmetatable(arg,wav.l_n_fun)
   local function somal(a,b)  if  not a  then  return 1 + b  else  return a + b  end  end
   local un_tmp  =  UN_TMP    local futn = 1    local futa = wav.N()    for  i = 1 , arid  do    futa[i] = 1    end    local transicao = TRANSICAO_TIMBRE    local envini = 0    local envelope    if type(ENVELOPE) == 'number'  then  envelope = ENVELOPE  envini = 0    else  envelope = ENVELOPE:c()  envini = envelope.ini  envelope.ini = -1/0  envelope.prx = -1/0  envelope.fim = 1/0        end    if  envini == -1/0  then  envini = 0  end    local som   =   SOM    local prx = PRX    local fim = FIM    local parametros = {}
   if  type(nota[1]) == 'table' and nota[1] ~= wav.o  then        detalhes = table.remove(nota,1)    table.remove(arg,1)        if  detalhes[1]       then    un_tmp = detalhes[1]  * UN_TMP  end        if  detalhes.trt      then transicao = detalhes.trt           end        if  detalhes.prx      then       prx = detalhes.prx * un_tmp  end        if  detalhes.env      then            if type(detalhes.env) == 'number'  then  envelope = detalhes.env  envini = 0            else  envelope = detalhes.env:c()  envini = envelope.ini  envelope.ini = -1/0  envelope.prx = -1/0  envelope.fim = 1/0                end            if  envini == -1/0  then  envini = 0  end            end        if  detalhes.som      then       som = detalhes.som           end        if  detalhes.fim      then       fim = detalhes.fim * un_tmp  end        for  i,v in pairs(detalhes)  do    parametros[i] = v    end        end
   local n = table.getn(nota)
   if  n == 1  then  arg[2] = arg[1]  nota.n = 2  arg.n = 2  end    if  (n == 2) and (type(nota[2]) == 'table' and nota[2] ~= wav.o)  then  arg[3] = arg[1]  nota.n = 3  arg.n = 3  end
   local Xd = wav.Xl_/(prs*un_tmp)  Xd.df.ini = envini  Xd.f.ini = envini  Xd.df.prx = un_tmp  Xd.f.prx = un_tmp    local pt = wav.Z    local f = wav.I/0
   local i
   if  1 < arid  then        i = 2        local ntrm = 0
       while  nota[i+ntrm]  do            if  type(nota[i+ntrm]) == 'table' and nota[i+ntrm] ~= wav.o  then                ntrm = ntrm + 1                detalhes = table.remove(arg,i)                if  detalhes.trt      then transicao = detalhes.trt         end                end
           pt =  pt  .. (arg[i-futa]  +  (arg[i] - arg[i-futa]) * transicao/(un_tmp*futa))            for  i,v in ipairs(arg[i])  do    if  v == wav.o  then  futa[i] = somal(futa[i],1)  else  futa[i] = 1  end    end
           i = i + 1            end        end
   local function n_direita(n_f,d)  local r = wav.N()  for  i,v in ipairs(n_f)  do  r[i] = wav.direita(v,d)  end  return r  end
   i = 1    while  nota[i]  do        if  type(nota[i]) == 'table' and nota[i] ~= wav.o  then            detalhes = table.remove(nota,i)    table.remove(arg,i)            if  detalhes[1]       then    un_tmp = detalhes[1]  * UN_TMP  Xd = nil  end            if  detalhes.trt      then transicao = detalhes.trt           end            if  detalhes.prx      then       prx = detalhes.prx * un_tmp  end            if  detalhes.env      then                if type(detalhes.env) == 'number'  then  envelope = detalhes.env  envini = 0                else  envelope = detalhes.env:c()  envini = envelope.ini  envelope.ini = -1/0  envelope.prx = -1/0  envelope.fim = 1/0                    end                if  envini == -1/0  then  envini = 0  end                end            if  detalhes.som      then       som = detalhes.som           end            if  detalhes.fim      then       fim = detalhes.fim * un_tmp  end            for  i,v in pairs(detalhes)  do    parametros[i] = v    end            end
       if  nota[i] ~= wav.o  then
           if  not Xd  then  Xd =  wav.Xl_/(prs*un_tmp)  Xd.df.ini = envini  Xd.f.ini = envini  Xd.df.prx = un_tmp  Xd.f.prx = un_tmp  end            f = f .. ( envelope * som( nota[i] * Xd , n_direita(pt,-f.prx) , parametros ) )
       else
           f.prx = f.prx + un_tmp
           end
       i = i + 1        end
   if  prx  then  f.prx = prx  end    if  fim  then  f.fim = fim  end
   return f
   end
FREQ = 360/2 --  usando como referencial de frequência um produto dos primeiros númros primos e a escala justa talvez possamos ter os nós ou ventres das --  ondas e os batimentos entre as notas em harmonia com o andamento da música
ENVELOPE = wav.IEXP/.5
UN_TMP = .25
PRX = nil
FIM = nil
TRANSICAO_NOTAS = ((wav.I_/3) ^ wav.A_)/(1/4)
TRANSICAO_TIMBRE = wav.S
function ONDA(f,pt,pe)    if  pt and pt[1]  then  pt1 = wav.ll(-1/0,pt[1],-1/0,1/0)  else  pt1 = wav.UM  end    if  pt and pt[2]  then  pt2 = wav.ll(-1/0,pt[2],-1/0,1/0)  else  pt2 = 0  end    local mf    if  pe  and  pe.mf  then  mf = pe.mf  mf.prx = -1/0  mf.fim = 1/0  else  mf = 1  end    local mt    if  pe  and  pe.mt  then  mt = pe.mt  else  mt = wav.N(0,0)  end
   local lp = -.5 + .5*wav.SIN    local SD = wav.S * wav.SIN    local lpfr = lp(f + mf)    return SD(wav.INV(pt1)*(1 + pt2 + mt[2])*(lpfr + pt1 + mt[1]))    end
function SOM(f,pt,pe)  return wav.INV(f.df) * ONDA(FREQ * f.f,pt,pe)  end
0 notes
asdfgdfme · 8 years ago
Text
A motivação para estas idéias é a idéia de representar informaçao em diagramas e de que a--->b  poderia significar que em qualquer parte igual a  a  de um diagrama verdadeiro pode-se acrescentar uma parte correspondente a  b  resultando num diagrama verdadeiro , quantificação universal a^b  pode ser um diagrama com partes iguais a  a e b , qual depende de quais representações específicas destes diagramas  a e b  são O correspondente existencial de  a--->b  é  ab , mas considero subdiagramas de diagramas verdadeiros também verdadeiros de modo que  ab , se verdadeiro , já contém um exemplo O que não está quantificado universalmente da forma  a--->b (e até o que está) , está quantificado existencialmente Abaixo minhas especulações sobre as propriedades formais É muito provável que haja erros
*Operações em um conjunto a,b |---> a^b        conjunção , comutativa e associativa , a^a = a a,b |---> aVb        disjunção , comutativa e associativa , aVa = a a,b |---> ab         associativa a,b |---> a--->b     a--->b a   |---> |a|        ||a|| = |a| , |a|  determina  a *Um elemento  C  chamado de elemento constante ("C" maiúsculo , minúsculo uso com qualquer significado) Talvez seria possível dispensar a disjunção *Uma categoria cujos morfismos são monomorfismos , quando falar em objeto ou morfismo é desta categoria *Uma função dos elementos no conjunto de objetos a |---> [a]    (não confundir com  |a| ou com alguma classe de equivalência , não há correspondencia entre [a] e a classe de equivalência de  a  por "<>") *Um subconjunto de objetos da categoria chamados de verdadeiros (talvez deveria ser outra palavra) *Defino verdadeiro também para elementos , a  é verdadeiro se e somente se  [a]  é verdadeiro *Uma relação ">" transitiva e reflexiva b < a  é o mesmo que  a > b se  a < b  e  b < a  escrevo  a <> b  e digo que são equivalentes por "<>" *Uma relação "->" transitiva e reflexiva no conjunto de objetos da categoria se  a -> b  digo que  a  implica  b (não confundir implicação entre elementos com implicação entre afirmações , como em "a > b  implica  a -> b") se  a -> b  e  b -> a  escrevo  a <-> b  e digo que  a e b  são equivalentes *Defino "->" (ou correspondente , mesma notação) também entre elementos , a -> b  se e somente se  [a] -> [b] mesmas convenções que no outro caso aiuma a > b  implica  a -> b *Um conjunto fechado por composição de funções bijetoras no conjunto de elementos que preserva a estrutura descrita aqui: as operações , relações , os objetos correspondentes , os morfismos determinados e o elemento constante C Quando falar em bijeção , provavelmente me refiro a estas funções Vou chamar de expressão uma expressão envolvendo envolvendo elementos da estrutura , as cinco operações acima e talvez bijeções (talvez não deveria permitir estas funções no que chamo de expressões , não sei) Vou chamar de fórmula a representação de uma expressão que não deixa claro em quais elementos , representados por letras , as operações são aplicadas nem quais as bijeções , caso permitidas , mas havendo um símbolo para o elemento constante , uma fórmula também não determina um exemplo desta estrutura em que a expressão representada é imaginada Exemplos de uma expressão representada por uma fórmula tem resultados , é a isto que me refiro genéricamente se falar em resultado de uma fórmula *Certos pares de expressões determinam morfismos , vou usar o mesmo símbolo "--->" pois os colchetes deixam claro que se trata de morfismos e as expressões dentro dos colchetes determinam o morfismo .para cada  a , b  um morfismo  [a] ---> [a ^ b]  determinado por  a e b  tal que a composição [a] ---> [a ^ b] ---> [a ^ b ^ c]  seja [a] ---> [a ^ b ^ c] .para cada  a , b  um morfismo [a] ---> [ab] .para cada  a  um morfismo [|a|] ---> [a] se  e1,e2,e3,e4  são expressões que determinam morfismos [e1] ---> [e2]  e  [e3] ---> [e4] então as expressões  e1 ^ e3  e  e2 ^ e4  também determinam um morfismo [e1 ^ e3] ---> [e2 ^ e4] Além disso , [ab] , além de  [a]  determina também  [b] , mesmo que não haja um morfismo de  [b]  em  [ab] ,  e  [a--->b]  determina  [a] e [b] Provavemente , dependendo do exemplo desta estrutura , ab  ou  a--->b  determina parcialmente ou totalmente o par  a,b  , o que tem relação com  |ab| e |a--->b| Vou convencionar que menos espaços entre a notação da operação e os argumentos indica operação realizada primeiro , por exemplo a^b ---> c  =  (a^b)--->c  e  a--->b ^ c  = (a--->b)^c Para "--->" , caso não esteja claro , agrupamento à direita a--->b--->c  =  a--->(b--->c) Quando digo "determina" é através de uma mesma função correspondente Quando escrevo  "a1 ... an" , sem vírgulas , a justaposição representa operação denotada assim Acho que , dado um conjunto de símbolos para representar elementos e um para representar o elemento constante , através de classes de equivalência por uma relação apropriada no conjunto de fórmulas possíveis pode-se definir um exemplo desta estrutura , então as fórmulas são expressões também Em vez de escrever "expressão ou fórmula" vou escrever simplesmente "fórmula" , pois é esta palavra que vem à mente naturalmente , mas talvez o mais correto seria usar a palavra "expressão" Vou chamar a posição em que está uma subfórmula na fórmula de "escopo" , mas certas posições , como escopo , vou considerar as mesmas (ver o caso da conjunção abaixo) (talvez deveria usar outra palavra , por causa da mesma palavra usada com relação a quantificação , mas estes escopos são o mesmo tipo de posições) Um escopo determina a fórmula e a posição As fórmulas elas mesmas estão num escopo que chamarei de escopo inicial Vendo a fórmula como subfórmula ou subfórmula (imprópira) de sí mesma , ela está no escopo inicial Considero o escopo inicial o mesmo para todas as fórmulas No caso da conjunção acho que também pode-se considerar que ela e cada subconjunção sua está no mesmo escopo , o mesmo escopo onde está a conjunção , então conjunção não cria escopos novos Defino escopo para expressões e fórmulas , não elementos , mesmo que os resultados de expressões possam manter parte da estrutura da fórmula Cada escopo determina um elemento que vou chamar de "elemento constante" do escopo , no caso de fórmula é um elemento , no caso de fórmula é uma fórmula , mas em qualquer caso vou chamar de elemento constante do escopo , o que faz diferença é sua classe de equivalência por "<>" , mas é mais simples definir um elemento ou fórmula específico Seja um escopo onde o elemento constante é  c , então: .se a subfórmula alí é uma conjunção seu escopo é o mesmo de onde está a subfórmula , portanto o elemento constante também é  c .se  ab  ou  a--->b  é a subfórmula neste escopo , no escopo onde está  a  o elemento constante é também  c , no escopo onde está  b  o elemento constante é  ca .se  |a|  é a subfórmula neste escopo , no escopo onde está  a  o elemento constante também é  c Por exemplo ,  abd , o elemento constante para  a  é  C , para  b  é  Ca , para  bd  é  Ca  e para  d  é  Cab , mas  Ca <> a  e  Cab <> ab Na fórmula  a1...an , o elemento constante para  ai  é  Ca1...ai-1  <>  a1...ai-1 Em um escopo onde o elemento constante é  c , se  c > d  vou dizer que  d  é constante Vou chamar um elemento de fixo em um escopo se não varia em quantificações neste escopo , apenas em escopos mais externos (acho que a descrição geral aquí deixará claro o que isto significa) Um elemento constante em um escopo é fixo alí e além disso é como verdadeiro neste escopo (acho que ficará claro também o que isto significa) Ser constante em um escopo implica ser também fixo alí , o oposto não vale É equivalente  |a|  e  a  serem fixos em um escopo Se  |a|  é fixo em um escopo é também constante , pois é verdadeiro Se  a  é constante em um escopo  |a|  também é , o oposto não vale O escopo inicial seria onde cada fórmula é imaginada como estando , pode-se imaginar como um escopo de uma fórmula maior imaginária (teria que ser escopo operacional , ver mais abaixo) C  é o elemento constante do escopo inicial Se  C > d , digo que  d  é constante , portanto  d  é constante se é constante no escopo inicial Propriedades de "->" (e portanto , propriedades de ">") podem ser vistas como regras de inferência No escopo inicial valem as regras de inferência , vou dizer que o escopo inicial é operacional (não pensei muito qual palavra usar) Vou definir escopo operacional tal que: .o escopo inicial é operacional .se  a--->b  ou  ab  estão em um escopo operacional então o escopo determinado pelo escopo onde está  b  é operacional .os escopos operacionais de  a1,...,an  correspondem a operacionais de  a1^...^an Um conjunto maior de escopos pode ser considerado operacional através de regras gerais f1 <> f2  que determinem correspondências entre um escopo operacional de  f1  e um escopo de  f2 , o qual pode ser considerado operacional , por exemplo , em (ab) ---> c  <>  a ---> (b ---> c) Pode-se supor que em um escopo operacional há uma estrutura como a descrita aquí da qual o elemento constante inicial é o elemento constante deste escopo , as operações são as mesmas , e  a > b  ou  a -> b  valem se e somente se a mesma relação vale nos resultados de preencher o escopo com estes elementos , as bijeções são o subconjunto delas que preservam o elemento constante deste escopo , um elemento é verdadeiro se preenchendo o escopo com ele resulta em um elemento verdadeiro , a função desta estrutura na original correspondente a preencher o escopo com o elemento preseva , a menos de "<>" , a conjunção , por exemplo , a--->(b^c)  <>  (a--->b)^(a--->c)  e  a(b^c) <> ab ^ ac , não pensei sobre qual seria a função a|--->[a]  nesta estrutura Então , cada regra de inferência determina a regra de inferência mais geral que corresponde a sua aplicação em escopos operacionais Vou supor que as regras de inferência determinadas desta forma valem
Se  a <> b  então se a fórmula  f2  é resultado de substituir uma ocorrência de  a  por uma de  b  na fórmula  f1 , então  f1 <> f2  (resultados) Acho que a situação de  "V" e "^"  com relação ao sentido da relação ">" definida aquí está oposta ao que seria esperado , mas , se  a > b  então  a  implica  b  e  a  em certo sentido é maior que  b , acho que está bom assim Se uma das bijeções leva  a em b  escrevo  a ~ b Vou usar notação de índice superior , a adição ou mudança do índice superior representa a aplicação de uma das bijeções em particular , todos os objetos e morfismos determinados por a1² , ... , an² são os mesmos que os respectivos determinados por a1³ , ... , an³ ausência de índice superior equivale a um índice superior Então , em particular , [a¹] = [a²]  e  a¹ <-> a² Se escrevo  a³  está implícito que qualquer  b  tem uma versão  b³ Podem ocorrer coincidências , como  a² = a³ , que não implica que  b² = b³ Então , se com esta convenção é possível chamar  a  de  c¹  e  b  de  c² , a ~ b Se  f  é uma fórmula , f²  tem sentido e resulta o mesmo que distribuir o índice superior a todos os elementos que ocorrem na fórmula , por exemplo , (a---> b²--->c  )³  =  a³---> (b²)³--->c³ Em particular , |a|² = |a²| É possível uma notação tipo  a(x1,...,xn) (ou F(x1,...,xn)) , isto corresponde a usar nas fórmulas , permutações no conjunto de variáveis (do tipo x,y,z,...) usado como representação de bijeções da estrutura (estas permutações não aparecem nas fórmulas individuais) , supõe que as bijeções representadas tem mesmas propriedades por composição (igualdades) que estas permutações (notar que nenhuma bijeção levará um elemento representado por , por exemplo , a(x,y,z) em um representado por a(x,y,y) ) Usei a notação de índice superior porque é suficiente aquí e não remete a exemplos específicos desta estrutura A verdade ou não de  a^b , a--->b  ou  ab  não é função da verdade ou não de  a e b (não defin�� negação , por isso não falei em tabela-verdade) Por exemplo , no caso de  a^b , imaginar  a e b  como do tipo  P(x1,...,xn) , então coincidências de variáveis são importantes , podem os dois ser verdadeiros mas  a^b  não ser (lembrar da quantificação existencial implícita) Se  a  é resultado de alguma expressão em que ocorre "--->" digo que  a  tem ocorrências de "--->" a > b  se e somente se  a ^ b <> b a > b  implica  a -> b Se  a  é verdadeiro e  a -> b  então  b  também é verdadeiro não tenho certeza sobre todas as propriedades abaixo C  pode ser imaginado como conjunto de constantes e suas propriedades e relações C  é verdadeiro C  <  a C ^ a  <>  a Ca  <>  a a  <>  C--->a C  <->  a--->C |a|  é verdadeiro C <-> |a| |a| < a A classe de equivalência de  a ^ b  por "<>" é a menor cota superior por "<" da classes de  a e b , valem propriedades usuais decorrentes disto não sei se devo supor o correspondente para  a V b , imagino que , com relação a "<" , a V b  tira um pouco de  a  e  acrescenta um pouco de  b Acho que "V" tem algo de único entre as operações a  <>  |a| ^ a aa <> a    (talvez deveria ser igualdade) a  ->  a V b a  <  a ^ b a  <  ab Se  b  não contém ocorrências de "--->" , então  ab <> a^b Mesmo  b  contendo ocorrências de "--->" , pode ocorrer  ab <> a^b a--->(b--->c)  <>  (ab) ---> c a ^ (b V c) <> (a ^ b) V (a ^ c) a(b ^ c)  <>  ab ^ ac a(b V c)  <>  ab V ac (b V c)a  <>  ba V ca (a V b)--->c  <>  a--->c ^ b--->c talvez estas duas últimas propriedades caracterizam o significado de "V" a--->(b ^ c)  <>  a--->b ^ a--->c |a ^ b|  <> |a| ^ |b| |a V b|  <> |a| V |b| Acho que é possível supor ou não que |a--->b| <> |a|^|b|  e  |ab| <> |a|^|b| , que talvez corresponda ao caso de  ab e a--->b|  determinarem completamente o par  a,b , caso sim a operação "V" tem algo de único , como se fosse adicionada depois , mas acho que há outras possibilidades ab  <>  a ^ |a V b|b ab  <>  a ^ |a|b ab  <>  a ^ ab ab  <>  aba Se  f2  é obtido de substituir na fórmula  f1  uma ocorrência de  f  como subfórmula , no escopo desta ocorrência de  f  e  sendo constante , por  e^f  ou  ef , então  f1 <> f2 , isto é a versão mais geral da distributividade (da esquerda para a direita) da operação denotada por justaposição (pois  ab  "adiciona"  a  ao escopo onde está  b) [ab]  determina  [a] e [b] [a--->b]  determina  [a] e [b] [a] e [|a|]  se determinam mútuamente "->" (as duas) é reflexiva , então se  [a] = [b]  então  a <-> b Se  O1 --f--> O2  é morfismo e  O2  é verdadeiro então  O1  é verdadeiro Parece que há um certo conflito de sentidos entre isto e a operação "--->" , mas a regra acima é natural e  a--->b  diz algo sobre o sentido oposto Se  d ^ a² ^ a--->b  é qualquer subfórmula de  f1 (inclusive  f1) em escopo operacional , c  é o elemento constante neste escopo , e ca ~ ca²  e  cb ~ cb²  (então , cab ~ ca²b²) e  f2  é o resultado de substituir esta ocorrência de d ^ a² ^ a--->b    por    d ^ a²b² ^ a--->b  em  f1 então vale  f1 <-> f2 Portanto , a--->b  pode ser lido como "para qualquer  a  vale  b" Dependendo do caso , a²b² <> a² ^ b²  (então  ab <> a ^ b) Interpretando na categoria o significado de  a--->b  ou do objeto  [a--->b]  tem relação com o morfismo [d ^ a² ^ a--->b] ----> [d ^ a²b² ^ a--->b] Sobre  ca ~ ca²  e  cb ~ cb²  acima , talvez se possa fazer alguma convenção geral adicional sobre o uso de índice superior em fórmulas Acho que até que ponto o resultado das fórmulas retém a estrutura delas pode variar dependendo da estrutura específica que satisfaz estas definições Sobre a operação denotada por justaposição ser associatiava , a idéia desta operação é que a diferença de significado entre  a1 ... an  e  a1 ^ ... ^ an seja devida apenas aos elementos constantes que valem para cada  ai Em  (ab)d  o elemento constante para  ab  é  C , portanto para  a  é  C  e para  b  é  Ca <> a , e para  d  o elemento constante é  C(ab) <> ab Em  a(bd)  o elemento constante para  a  é  C  e para  bd  é  Ca , portanto para  b  é  Ca <> a  e para  d  é  (Ca)b <> ab  pois  Ca <> a Minha intuição é que os elementos são diagramas da forma P1(x11,...,x1n) ^ ... ^ Pk(xk1,...,xkm) , estes elementos determinam as variáveis  x1,...,xn  específicas que ocorrem neles , elementos deste tipo que diferem apenas pelas variáveis teriam esta relação entre sí , mesma forma , o que implica equivalência por "<>" , o oposto não vale O que os resultados de expressões determinarem delas estaria codificado com o auxílio de relações P(_,...,_) especiais sobre as quais as regras de inferência teriam restrições Elementos do tipo  P(x1,...,xn)  podem representar relações e elementos da forma  F(x1,...,xn)  podem representar funções Mas , se os elementos são mapas parciais da realidade , um mapa determinando uma forma mas não um local , que são verdadeiros quando existe o que representam , ou seja , existe pelo menos uma ocorrência do que representam , encaixam em pelo menos uma parte da realidade , então a existência de  F(x1,...,xn)  é uma relação entre  x1,...,xn , e se a validade de  P(x1,...,xn)  é real , existe , existe este aspecto da realidade , P(P1(xi1,...,xin),...,Pr(i1,...,xim)) pode representar uma relação entre relações (relações vistas como entre elementos específicos , como um morfismo é entre dois elementos) , talvez possa-se dispensar o uso de tipos separados  P(x1,...,xn) e F(x1,...,xn) Questionar se é verdadeiro corresponde a questionar se existe um exemplo do que é representado , este é o signifcado de verdadeiro que imagino Por causa desta forma de ver os elementos , mapas parciais da realidade , para os quais podem haver partes da realidade que representem , considero os elementos e as fórmulas quantificados existêncialmente , uso quantificação implícita existencial , e mesmo quando há quantificação universal (em  a--->b) , suponho que cada parte da fórmula e de seu resultado diz que algo existe , pode-se filosofar um pouco sobre o que a parte quantificada universalmente diz que existe (algum aspecto da realidade , talvez abstrato) , em  ab  a quantificação existencial é explícita , significa o mesmo que a implícita (mas  a  afeta o significado de  b  em  ab) , em  a1 ^ ... ^ an  a quantificação existencial é implícita , os aspectos dos elementos que "percorrem" coisas por quantificação dependem da estrutura específica que satisfaz estas definições O resultado de P1(x11,...,x1n) ^ ... ^ Pr(xr1,...,xrm) também poderia ser a composição destas relações conforme este diagrama Os elementos tem informação que para efeito de serem verdadeiros e de sua situação com relação à relação "->" é redundante , mas seu efeito em subfórmulas não é redundante e para a relação ">" faz diferença ab  pode ser lido como "existe  a  tal que  b" , mas o signficado de  b  é potencialmente alterado pelo elemento constante do escopo onde  b  está , isto tem relação com ocorrências de "--->" em  b devido ao significado existencial implícito dos elementos , ab poderia ser lido como "existe  a  tal que existe  b" , abc  como "existe  a  tal que existe  b  tal que  existe  c" , etc ... , e um elemento  a  como  "existe  a" |a|b  ou  |a|--->b  fixa  a  (para o escopo onde está  b)  sem supor que é verdadeiro , "inclui"  |a| , que determina  a  , no elemento constante deste escopo , a  se torna constante alí sem ser necessáriamente verdadeiro |a|  é sempre verdadeiro , mas afeta o significado de  |a|b  e de  |a|--->b São as bijeções que determinam em quantas situações o que  a--->b  diz pode ser aplicado Os aspectos dos elementos que estas funções variam são os que podem estar quantificados Podería-se chamar de "aspectos variáveis" A adição de mais destas funções faz cada  a--->b  mais útil , torna mais provável que algum  a²  coincida com algum elemento verdadeiro A restrição é que só possibilitem a obtenção de elementos verdadeiros Poderia-se definir parte destas funções apenas em subconjuntos de elementos (não é o que suponho aqui) , provavelmente elementos com certa forma a que se atribuíu significado especial , o uso delas provavelmente estaria restrito a situações em que só ocorrem elementos destes subconjuntos , a determinação de funções assim dependeria de criatividade , uso de analogias , estas funções são analogias Em  |a|b  ou  |a| ---> b , para  b , a  é fixo sem necessáriamente ser verdadeiro |a|  é sempre verdadeiro , e se  |a| ---> b  então  b  também é verdadeiro , mas |a| ---> b  diz mais que isto , diz lugares onde a forma de  b  pode ocorrer tomando como referência ocorrências da forma de  |a| |a|b  diz que existencialmente , a forma de  |a|  ligada com a forma de  b  conforme os elementos  a e b  determinam , é verdadeiro , existencialmente no sentido de que |a|b não determina como (e se) a forma de  |a|b  pode ser aumentada sendo ainda verdadeira , ou seja , onde pode ocorrer Se  d  é constante no escopo onde está  a--->b  , então  d  não varia na quantificação universal de  a  em  a--->b , e além disso  d  é verdadeiro neste escopo , se apenas |d|  é constante neste escopo então  d  igualmente não varia nesta quantificação , mas não necessáriamente é verdadeiro , mas fórmulas envolvendo  d  podem ser (d  é constante em um escopo se e somente se  |d|  é) Se quero simular um elemento constante inicial  C^a , seria através de C^a ---> b , no escopo onde está  b , pois são verdadeiras quando  b  seria , (C^a)b afirma também  a  "fora" desta simulação Para usar coisas como  P(a1,...,an)  sem se referir a características dos elementos não acessiveis através da estrutura descrita aquí (mas acessíveis em caso de se definir um exemplo desta estrutura , então a natureza dos elementos do conjunto é acessível) , imaginei que P(a1,...,an)  pode ser abreviação para (s1--->a1 ^ ... ^ sn--->an) ---> p (este  P(a1,...,an)  provavelmente não coincide com nenhum elemento que tenha intrínsecamente este tipo de estrutura) em um escopo onde  s1,...,sn e p  já foram fixados sem supor que são verdadeiros e sem supor propriedades que conflitem com este uso  ( |s1|^...^|sn|^|p| ---> ...  ) ou se o elemento constante inicial  C <>  |s1|^...^|sn|^|p| ^ C Mesmo sem isto talvez seja possível se as formas de  s1,...,sn,p  não são usadas de outras formas Permitindo como estruturas de argumentos de operações relações quaisquer entre os argumentos , pode-se definir estas quatro operações no conjunto de objetos da categoria e usar como parte adicional das estruturas de argumentos um conjunto de morfismos , aqueles que os objetos eles mesmos não determinam mais , acho que pode-se ver o que descrevo aquí como uma forma de descrever esta estrutura
0 notes
asdfgdfme · 8 years ago
Text
Parece que mesmo quando aquí há quebra de linha , copiando e colando fica como no original
0 notes
asdfgdfme · 8 years ago
Text
Anotações
Fui aumentando este script e chegou neste ponto Abre um arquivo de texto Está com problema ao editar partes intermediárias do texto , corrompe o arquívo , mas há a possibilidade de usar apenas para visualizar e fazer buscas , editando com algum editor de texto (texto simples) (cuidado para o editor usado não eliminar sequências de espaços) , de qualquer forma , salvar cópias Já faz algum tempo , não pretendo mexer mais , não lembro como funciona , mas talvez alguém ache interessante Acho que é mais interessante para quem quer testar as idéias ou mexer no script , mas não está comentado e documentado , já não lembro bem como funciona É para fazer anotações em arquivo de texto simples , "anotação" no sentido de algo a lembrar , como se fosse uma entrada em um banco de dados Usa Löve , que é para games 2d Com certa frequência para e acusa algum erro Usar Ctrl+s depois de edições Não tem barras de rolagem A janela tem tamanho fixo Clicando fora da janela a atualiação para e escurece clicando dentro volta Se as anotações forem importantes fazer cópias de "arquivo.txt" em outro diretório Não supõe nenhum tipo de registro ou formatação especial no arquivo O que talvez tem de diferente é a forma de mostrar imagens e as funções de busca Salva com certo número mínimo de linhas , seria solução temporária de algum problema No linux que uso , Q4OS , baseado no Debian , instalei Löve , criei o diretório  /home/usuário/.local/share/love/Love  (substituír "usuário") e nele coloquei  main.lua , criei o diretório img e os arquvos "arquivo.txt" e "conf.txt" e coloquei uma fonte monospaced (tem que ser monospaced) renomeada para "fonte.ttf" , e criei um item no menú de contexto do gerenciador de arquivos (uso PcManFm) , não lembro como , para executar diretórios contendo main.lua com Löve Mais detalhes e sobre Windows procurar o site de Löve Coloquei o diretório com o script main.lua , o arquivo arquivo.txt a ser editado ou visualizado , o arquivo conf.txt e o diretório img em  /home/usuário/.local/share/love pois facilita a manipulação de arquivos , Löve tem certas restrições quanto a modificar arquivos por questão de segurança Domínio público , script e idéias , portanto se for interessante pode-se alterar de qualquer maneira ou implementar as idéias do zero , poderia tentar usar Scrupp que parece que é algo semelhante à Löve e usa a linguagem Lua também (ví a descrição na internet) Quem olhar o script perceberá que não tomei tempo para escolher o nome das variáveis e funções
.fazer qualquer tipo de anotações de forma não necessáriamente formal .algumas funções de editor de texto simples , testar para ver se funciona , seleção de texto começa com Shift+Right e termina com Ctrl+c , não destaca , o texto copiado é independente do conjunto de expressões usado em buscas , ver mais abaixo .algumas funções próprias , descritas abaixo Não implementei barra de rolagem , mas rola com a roda do mouse , depende da posição do curso do mouse .abre sempre o arquivo "arquivo.txt" no mesmo diretório onde está main.lua .uma forma simples de mostrar imagens , nome com dois espaços ou separadores de cada lado , tamanho especificável por um par de aspas simples na linha abaixo , se houver imagem no formato .jpg com o nome no diretório img é mostrada (a idéia é , para qualquer coisa que depende de coordenadas x,y na tela , apenas permitir para x,y as posições possíveis para caracteres (monospaced)) , a imagem precisa ser colocada neste diretório com um gerenciador de arquívos , com nome apropriado , formato .jpg .função de busca através de clique com botão direito em expressão , delimitada por dois espaços ou separadores de cada lado , então é possível organizar tags de forma hierárquica , nas ocorrências não é preciso haver pares de separadores Quando falar em "expressão" é uma sequẽncia de caracteres separada por um par de espaços ou um par de separadores ou início ou fim de linha , de cada lado , portanto uma expressão não pode conter mais de um espaço contíguo , quando falar em "tag" é a mesma coisa .busca por conjuntos de expressões em mesma linha , precionando Tab enquanto se clica com o botão direito em várias expressões o conjunto é selecionado , a tecla CTRL limpa este conjunto , as teclas 2 e 3 do teclado numérico com numlook desligada buscam nos dois sentidos cíclicamente , as expressões podem ser usadas como tags , na linha abaixo de uma anotação no texto pode haver uma linha com tags , podería-se iniciar esta linha com o caractere "#" por exemplo , quero usar o mínimo de notação especial , por isso imagino as tags apenas como expressões separadas por pares de espaços .durante a busca o texto é posicionado tal que as ocorrências fiquem na mesma posição , arrastando o texto esta posição muda As buscas são cíclicas .Para qualquer das buscas acima , as teclas 2 e 3 no teclado numérico , com numlook desligado , buscam as ocorrências anterior e próxima , respectivamente , não há barras de rolagem e a busca é cíclica .rolagem de tela arrastando com o botão esquerdo , horizontal e vertical , o cursor de texto vai para a posição clicada , de modo que não arrastando tem esta função .rolagem de tela também com a roda do mouse , a velocidade depende da posição horizonal do ponteiro , na borda direita devagar , mais à esquerda mais rápido .com a tecla shift apertada , clicando com o botão esquerdo em um link de internet , separado por dois espaços de cada lado , deveria abrir no navegador .Imaginei sequências de caracteres sem espaços ou separadores seguidas do caractere ">" como uma forma especial de ligação entre um conjunto de pontos no texto , acessíveis através das funções de busca descritas , se mais que uma formando uma coluna ou de qualquer forma que se quiser , a idéia era de poderem estar mais próximas à esquerda de exressões que dois caracteres , mas não está implementado , provavelmente serão aplicadas à esquerda de expressões ou próximo à anotações .Ctrl+home  vai para a linha contendo "-O-" , assim uma parte mais inicial pode conter uma descrição do conteúdo do arquivo , pode-se anotar o próximo código a usar da forma "código>" (descrito acima) , etc , imaginei uma linha contendo "--------- -O- ----------" (ver mais abaixo) .Ctrl+roda  muda o tamanho dos caracteres , mas parece que a função clicar para posicionar o cursor de texto só funciona direito acima de cerrto tamanho , parece que certa função pré-definida que retorna os tamanhos horizontal e vertical dos caracteres não é precisa .Ctrl+s  salva , pode levar alguns segundos se arquivo.txt for grande (como 300 Kb) , quando terminou de salvar aparece a palavra "salvo" na parte superior da tela , que some ao clicar no texto
Onde mencionar um par de espaços de cada lado vale um par de separadores de cada lado , podem estar misturados , e o mesmo par pode valer para o que houver à esquerda e o que houver à direita , ou seja , não é preciso quatro separadores entre duas expressões Separadores são  espaço , colchetes , esclamação , interrogação , dois pontos , "/" , "#" , "-" , virgula , "|" , "=" , parenteses , "&" , ">" Início de linha ou fim de linha servem como par de separadores , não necessitando o par de separadores
O nome das imagens precisa ter os espaços (os internos , os pares que delimitam não tem correspondente no nome da imagem) que aparecerem no texto substituidos por "_" , maiusculas e minusculas são diferenciadas Os nomes dos arquivos de imagem em img correspondentes no texto a endereços internet devem ter no nome do arquivo de imagem mas não no texto cada sequência com os caracteres /:=? substituída por ".." (par de pontos)  , o ponto individual , como em  www.endereço , permanece ponto (não sei se cria problema no Windows)
Para mostrar imagens
   "  "nome imagem"  "    onde "  " é um par de espaços ou separadores    '                 '    aspas simples opcionais indicando o tamanho horizontal
Imagem no diretório img no mesmo diretório onde está main.lua e arquivo.txt Onde no nome do arquivo de imagem houver "_" no texto pode haver espaço No texto não incluir extenção , é suposta a extenção "jpg" (o script é um protótipo) As aspas simples determinam inicio e fim da parte horizontal da imagem , início precisa ser à direita do primeiro caractere , se omitidas é usada a largura padrão A dimensão vertical mantém a proporção da imagem
"diretórios" de tags poderiam ser especificados da forma
------------- taga -------------
tag1        tag2        tagn
------------- talb ---------------
tag...        ...               tag...
. . .
Cada um destes "diretórios" terminando no início do próximo ou , por exemplo , por    "----------------------------"
------------- -O- --------------
 .  .  .
seria o ponto inicial desta hierarquia , "diretório" raiz , acessível com  ctrl+home
A posição relativa provavelmente será contrária nas anotações em que imagino as tags todas na última linha , a linha que segue a anotação , que pode ter várias linhas em sequência , separadas por pares de espaços , se estão na mesma linha a função de busca por conjunto de expressões pode ser usada A busca no sentido para baixo dá preferencia (mostra primeiro) para linhas começando e terminando com "------" , ("--" basta) (vai primeiro para o "diretório" com este nome se houver) Estes "diretórios" provavelmente estarão em uma parte inicial do texto cujo fim pode ser indicado de alguma forma Acho mais simples e seguro ter tudo em um único arquívo de texto , pode ser imaginado como uma memória linear de computador
------------- taga -------------
tag1        123> tag2        tagn
pode fazer uma ligação do par  taga,tag2  com outros pares , determinando coisas como                  arte:música               artista:músico local de apresentação: ... ou            nome: ...        endereço: ...       profissão: ...
Se uma anotação que recebe uma tag puder ser considerada ela mesma uma tag , então
anotação ... 123> taga  tagb ...
pode indicar o par  taga,anotação  com mesmo significado que acima
entretanto na forma
anotação  taga  tabb ...
não é preciso que , como no caso dos "diretórios" ,  anotação  , que no caso geral consistiria de um conjunto de linhas , seja algo mais específico ou um exemplo das tags , mas apenas que o conjunto das tags formem um contexto semelhante ao que forma  anotação , se o contexto formado é mais geral que o formado por  anotação  as tags tem a função normal de tags , se o contexto formado pelas tags for mais específico ou um pouco disjunto que o formado por anotação  pode ser visto como parte da  anotação  fazendo com que anotação  tenha informação mais específica (sujestão de uso)
No arquivo conf.txt pode-se colocar configurações para expressões mostradas de forma diferenciada e de codigos (sequências curtas de caracteres) às quas estão associadas formas de exibição Para alterações em conf.txt terem efeito , Alt+c
As posições possíveis dos caracteres monospaced tamanho padrão são ponto de referência para todas as posições e tamanhos , mesmo texto mostrado com tamanho diferenciado é posicionado neste referencial , por isso podem ser necessárias sequências maiores de espaços para que não haja sobreposição quando há expressões mostradas em tamanho maior Uma exceção , sobre a qual tavez eu deveria pensar melhor , é quando um conjunto sequencial de linhas tem tamanho de caracteres alterado , então as posições alteradas dos caracteres são ponto de referência horizontal , em particular paraposições e tamanhos de imagens mostradas , verticalmente o tamanho padrão continua usado Mas se o tamanho dos caracteres é alterado com Ctrl+roda do mouse o próprio referencial de posições na tela é alterado
No arquivo  conf.txt  há especificações de formas diferenciadas de mostrar certas exresssões e de códigos indicando formas diferenciadas de mostrar texto As palavras "especiais" e "codigos" iniciam estas duas partes do arquivo conf.txt
As configurações diferenciadas são cor de fundo    cor de primeiro plano (caracteres)    tamanho dos caracteres
por exemplo
especiais expressão1 = 4080FF FFFFFF 4 expressão2 = 345465 a1d2f4 3 . . . codigos az> = 000000 0000FF 0 234 = 00FF00 0000FF 2 AFC = 800080 0080FF 3 . . .
Provavelmente estes códigos serão os mais curtos possíveis
O tamanho mostrado dos caracteres é o padrão multiplicado por  2^(tamanho/8) então  0  é o tamanho padrão
Os usos dos codigos são dois: Quando são o único conteúdo de uma linha , sem espaços , iniciam uma sequência de linhas mostradas conforme a definição correspondente , vai até a próxima ocorrencia deste tipo Quando no interior de uma linha de texto a parte da linha desta ocorrência até outra de código na linha ou indefinidamente à direita é mostrada conforme a definição  , neste uso , no interior de uma linha , não implementei o tamanho diferenciado , apenas as cores de fundo e primeiro plano , mesmo que em conf.txt apareça Quando este codigo de alteração tem efeito ele não é mostrado no texto , mas ocupa espaço e é sujeito à edição normal , isto é mais compatível com a filosofia que tenho em mente Pode ser usado para criar áreas de cores diferentes , se áreas de cores diferentes ocorrem uma ao lado da outra necessita ocorrências em todas as linhas envolvidas Para uma expressão ser mostrada sempre com tamanho diferenciado pode-se incluir ela na parte "especiais" de conf.txt , todas as ocorrencias dela serão mostradas assim
Além de cor de fundo , cor de primeiro plano e tamanho , poderia ser implementado para conf.txt: .imagens mostradas mesmo que a ocorrencia não seja entre pares de separadores , e posições relativas diferentes para a imagem , também acima e centrado e deslocamentos verticais e talvez horizontais destas posições em número de caracteres .texto alternativo para ocorrencias de certas expressões , assim ocorrrencias grafadas diferentes podem ter o mesmo texto e definições de exibição diferentes
Em certo momento imaginei codificar a posição e tamanho da exibição das imagens das formas
 nome                «      »            «      »  «      »            nome                nome                                          «      » para imagens abaixo , acima e centrada
funções de editor: .digitar .teclas de direção .clicar para posicionar ponteiro de texto .Home,End,Ctrl+Home (versão diferente),Ctrl+End .Ctrl+c,Ctrl+v .Ctrl+s (quando pronto mostra a palavra "salvo" em cima)) .rolar com roda do mouse , posição do ponteiro do mouse faz diferença .rolar arrastando com o botão esquerdo do mouse .selecionar com Shift+Right ou End (não destaca)
busca: .clicando com o botão direito se busca a próxima ocorrência da exressão e se torna { expressão } o conjunto de expressões selecinadas para buscas .mantendo tab presionada e clicando com o botão direito em várias expressões se adiciona elas ao conjunto de expressões usadas para buscas .ctrl limpa este conjunto .teclas 2 e 3 no teclado numérico , com numlook desligada , buscam ocorrências deste conjunto de expressões em mesma linha Resultados entre sequências "------" dos dois lados e um espaço interno , "diretórios" , ("--" basta) , são retornados primeiro (suponho que neste caso contenha uma única tar)
----------------
script abaixo espero que não haja problema de quebra de linha ao copiar e colar
-- colocar este arquivo , main.lua , no diretório /home/usuário/.local/share/love/nome de diretório
-- O lua 5.2 Reference Manual parece não mencionar estes casos , mas aqui -- string.sub(s,i,f) , quando f < i , inclusive quando f é zero , resulta na string -- vazia , "" , se não for o caso fazer alterações correspondentes
-- talvez a primeira coisa que alguém iria mudar aquí seria os nomes das funções e variáveis
function mod(x,y)  return math.fmod( x + 10*y , y)  end
floor = math.floor
max = math.max
min = math.min
apertada = love.keyboard.isDown
apertado = love.mouse.isDown
sep_palavra = "%s%.%[%]!?://#%-%,%|%=%(%)%&>"
sep_nome_imagem = "%s%.%[%]!#%-%,%|%=%(%)%&>"
-- o sufixo "_r" nas funções abaixo indica que recebe posição no texto em vez de string diretamente
function num_escp_r(l,i,f) -- número de de bytes menos número de caracteres                           -- na linha  l  entre  i  e  f  if  not i  then  i = 1  end  if  not f  then  f = 1000000  end  r = 0  i = i-1  repeat  i = arquivo[l]:find('%W',i)  if  i  and  i <= f  then    if      arquivo[l]:byte(i) <= 0xC0  then             i = i + 1    elseif  arquivo[l]:byte(i) <= 0xE0  then  r = r + 1  i = i + 2    elseif  arquivo[l]:byte(i) <= 0xF0  then  r = r + 2  i = i + 3    else                                      r = r + 3  i = i + 4      end  else  return r    end  until false  end
function tamanho_caractere(s)  -- tamanho da representação do caractere  local b1 = s:byte(1)  if      b1 <= 0xC0  then  return 1  elseif  b1 <= 0xE0  then  return 2  elseif  b1 <= 0xF0  then  return 3  else                      return 4    end  end
function tamanho_caractere_r(l,i)  local b1 = arquivo[l]:byte(i)  if  not b1  then return 1  end  if      b1 <= 0xC0  then  return 1  elseif  b1 <= 0xE0  then  return 2  elseif  b1 <= 0xF0  then  return 3  else                      return 4    end  end
function tam_caractere_ant(s,i)  if  i == 1  then  return 0  end  for  k = 1 , 1000000  do    b = s:byte(i-k)    if  not(128 <= b and b < 192)  then  return k  end    if  i-k == 1  then  return k  end    end  end
function tam_caractere_ant_r(l,i)  if  i == 1  then  return 0  end  for  k = 1 , 1000000  do    b = arquivo[l]:byte(i-k)    if  not(128 <= b and b < 192)  then  return k  end    if  i-k == 1  then  return k  end    end  end
function numero_de_caracteres(s) -- número de caracteres na string  if  not s  then  return 0  end  -- depois talvez eu vejo  local comprimento = s:len()  local r = 0  local i = 1  repeat  i = s:find('%W',i)  if  i  and  i <= comprimento  then    if      s:byte(i) <= 0x7F   then             i = i + 1    elseif  s:byte(i) <= 0xDF   then  r = r + 1  i = i + 2    elseif  s:byte(i) <= 0xEF   then  r = r + 2  i = i + 3    else                              r = r + 3  i = i + 4      end  else  return comprimento - r    end    until false  end
function numero_de_caracteres_r(l,i,f) -- número de caracteres na string  if  not i  then  i = 1  end  if  not f  then  f = arquivo[l]:len()  end  local r = 0  local k = i  repeat  k = arquivo[l]:find('%W',k)  if  k  and  k <= f  then    if      arquivo[l]:byte(k) <= 0x7F  then             k = k + 1    elseif  arquivo[l]:byte(k) <= 0xDF  then  r = r + 1  k = k + 2    elseif  arquivo[l]:byte(k) <= 0xEF  then  r = r + 2  k = k + 3    else                                      r = r + 3  k = k + 4      end  else  return f-i+1 - r    end    until false  end
--[[  função endereco_ou_proximo para cada escape ou o final da string verificar se um caractere anterior ou o caractere escapado é o n-ésimo caractere , seu caractere de escape se for escapado
para cada escape ou o final da string existe  d  que é o número de escapes anteriores , excluindo este , e  i  que é a posição do escape ou do último caractere da string
algum caractere anterior depois do penúltimo escape é o n-ésimo caractere se n < i-d neste caso o a posição do n-ésimo caractere é  n+d
o caractere escapado ou o último caractere é o n-ésimo caractere se  i-d = n neste caso aposição do n-ésimo caractere é  i
se  i  é o último caractere e  i-d < n  então há menos de  n  caracteres na string , então retornar a posição e número de hipotético caractere adicional , que são i+1  e  i-d+1 ]]
function endereco_ou_proximo(s,n)  -- endereço do caractere n ou de hipotético caractere                                   -- adicional se s tem menos de n caracteres  d = 0  i = 0  repeat    i = s:find('%W',i)    if  i  then  e = true  else  e = false  i = s:len()  if  i-d < n  then  return i+1 , i-d+1 , false  end  end    if  n <= i-d  then  return  n+d , n , true  end    if  e  then      b = s:byte(i)      if      b <= 0xC0  then             i = i + 1      elseif  b <= 0xE0  then  d = d + 1  i = i + 2      elseif  b <= 0xF0  then  d = d + 2  i = i + 3      else                     d = d + 3  i = i + 4        end      end    until  false  end
function endereco_ou_proximo_r(l,n)  -- _r aqui não é de renomeada                                     -- levando em conta os usos abaixo ,                                     -- não incluí os parâmentros  i , f  d = 0  i = 0  repeat    i = arquivo[l]:find('%W',i)    if  i  then  e = true  else  e = false  i = arquivo[l]:len()  if  i-d < n  then  return i+1 , i-d+1 , false  end  end    if  n <= i-d  then  return  n+d , n , true  end    if  e  then      b = arquivo[l]:byte(i)      if      b <= 0xC0  then             i = i + 1      elseif  b <= 0xE0  then  d = d + 1  i = i + 2      elseif  b <= 0xF0  then  d = d + 2  i = i + 3      else                     d = d + 3  i = i + 4        end      end    until  false  end
function caractere_end_r(l,n)  -- retorna string com caractere começando em n  local bn = arquivo[l]:byte(n)  if  128 < bn  and  nb < 192  then  return '' , false  end  if      bn <= 0xC0  then  return arquivo[l]:sub(n,n)   , 1  elseif  bn <= 0xE0  then  return arquivo[l]:sub(n,n+1) , 2  elseif  bn <= 0xF0  then  return arquivo[l]:sub(n,n+2) , 3  else                      return arquivo[l]:sub(n,n+3) , 4    end  end
function caractere_num_r(l,n)  n , x , dentro = endereco_ou_proximo_r(l,n)  if  not dentro  then  return '' , false  end  local bn = arquivo[l]:byte(n)  if  128 < bn  and  nb < 192  then  return '' , false  end  if      bn <= 0xC0  then  return arquivo[l]:sub(n,n)   , 1  elseif  bn <= 0xE0  then  return arquivo[l]:sub(n,n+1) , 2  elseif  bn <= 0xF0  then  return arquivo[l]:sub(n,n+2) , 3  else                      return arquivo[l]:sub(n,n+3) , 4    end  end
function carregar_string()  -- carrega a string mostrada na tela  str = ""  for l = trecho_inicio , trecho_inicio + trecho_max do    if  not arquivo[l]  then  break  end    str = str .. arquivo[l] .. "\n"    end  end
function carregar_linhas()    for  i = 1 , trecho_max+1  do        tabela_linha(trecho_inicio+i-1)        end    end
function rolar_abaixo()    if  arquivo_tamanho < trecho_inicio+trecho_max  then  return  end    tabela_linha(trecho_inicio+trecho_max+1)    trecho_inicio = trecho_inicio + 1    end
function rolar_acima()    if  trecho_inicio == 1  then  return  end    tabela_linha(trecho_inicio - 1)    trecho_inicio = trecho_inicio - 1    end
function rolar(n)
   if  n == 0  then  return  end
   if  shift  then        px = px - n*charw        buscaX = buscaX - n        return        end
   if      1 <= n and n <= 64  then        for  i = 1 , n  do  rolar_abaixo()  end    elseif  1 <= -n and -n <= 64  then        n = -n        for  i = 1 , n  do  rolar_acima()  end    else        trecho_inicio = trecho_inicio + n        carregar_linhas()        end
   end
function ir_para_linha(l)  rolar(l - trecho_inicio)  end
function cursor_proxima_linha()  cursorY = cursorY + 1  if  trecho_max < cursorY  then  cursorY = trecho_max+1  rolar(1)  end  cursorC = 1  cursorX = 1  end
function cursor_linha_anterior()  cursorY = cursorY - 1  if  cursorY < 1  then  cursorY = 1  rolar(-1)  end  cursorC = arquivo[trecho_inicio+cursorY-1]:len() + 1  cursorX = numero_de_caracteres_r(trecho_inicio+cursorY-1) + 1  end
function rolar_ao_cursor()  -- horizontal  local tamtxt = 2 ^ (tabela[(trecho_inicio+cursorY-1)%tabela_t].tam/8)  --cor_tam[trecho_inicio+cursorY-1].tam  if  (-px/charw+widthc < tamtxt*cursorX)  then  px = -charw*(tamtxt*cursorX-32) end  if  (tamtxt*cursorX < -px/charw+2)  then  px = min(0,-charw*(tamtxt*cursorX-32))  end  end
function selecao_adicionar(str)    for  i,v  in ipairs(sel)  do        if  v == str  then  return  end        end    table.insert(sel,str)    end
function selecao_limpar()    sel = {}    end
function buscar(direcao,pref)    local p    if  not sel[1]  then  return  end    sucesso = false    if  pref  then        for  i = 1 , arquivo_tamanho  do            l = mod( direcao*i + trecho_inicio+buscaY-2 , arquivo_tamanho ) + 1            if  arquivo[l]:match('^%s*%-%-.+%-%-%s*$')   then                sucesso , p = buscar_na_linha(l)                if  sucesso  then  break  end                end            end        end    if  not sucesso  then        pref = false        for  i = 1 , arquivo_tamanho  do            l = mod( direcao*i + trecho_inicio+buscaY-2 , arquivo_tamanho ) + 1            sucesso , p = buscar_na_linha(l)            if  sucesso  then  break  end            end        end    if  sucesso  then        if  pref  then    buscaX = floor(width/(charw*3))    end        trecho_inicio = min( l , arquivo_tamanho - trecho_max ) - buscaY + 1        px = cantox + charw*(buscaX - p)        cursorX = 1        cursorY = buscaY        cursorC = endereco_ou_proximo_r(buscaY,cursorX)        carregar_linhas()        return true        end    end
function buscar_na_linha(l)    r = 1/0    --infinito    sucesso = false    n = 1    while  sel[n]  do        p = arquivo[l]:find( sel[n] , 1 , true )        if  not p  then  return false  end        p = numero_de_caracteres_r(l,1,p)        if  p < r  then  r = p  end        n = n + 1        end    return true , r    end
function mais_zero(v)    return 0 + v    end
function numero(v)    r = nil    ok , r = pcall(mais_zero(v))    return r    end
function carregar_configuracao()  especiais = '\n'  visualizacao = {}  codigos = '\n'  cortam = {}  arq_conf = love.filesystem.newFile("conf.txt")  iterator = arq_conf:lines()  for  lnh  in  iterator  do    if      lnh == 'especiais'  then  t = visualizacao    elseif  lnh == 'codigos'    then  t = cortam    else        nome , fundo , cor , tam = string.match(lnh,'^([^=]*%S)%s*%=%s*(%S+)%s+(%S+)%s*(%S*)')        if  nome  then          rb , gb , bb = fundo:match('(%x%x)(%x%x)(%x%x)')          rf , gf , bf =   cor:match('(%x%x)(%x%x)(%x%x)')          t[nome] = {}          if  rb  then    t[nome].fundo = {'0x'..rb,'0x'..gb,'0x'..bb}    else    t[nome].fundo = nil    end          if  rf  then    t[nome].cor   = {'0x'..rf,'0x'..gf,'0x'..bf}    else    t[nome].cor   = nil    end          if  tam:match('^%d+$')   then    t[nome].tam = 0+tam    else    t[nome].tam = 0    end          if  t == cortam        then  codigos   = codigos   .. nome .. '\n'  end          if  t == visualizacao  then  especiais = especiais .. nome .. ' \n' .. nome .. ' \n'  end  -- por que duas vezes , ainda não sei , mas só assim funciona direito          end      end    end  arq_conf:close()  end
function carregar_arquivo() -- carrega o arquivo  arquivo.txt  (sempre o mesmo por enquanto)  neste diretório  carregar_configuracao()  file = love.filesystem.newFile("arquivo.txt")  file:open("r")  iterator = file:lines()  l = 0  for  lnh = 1 , trecho_max+1 do  -- um jeitinho enquanto não volto a mexer aqui (não sei se vou)    arquivo[lnh] = ""             -- o tamanho salvo do arquivo em linhas pode ser maior do que o que foi editado    end  for  lnh  in  iterator  do    l = l + 1    arquivo[l] = lnh    crct = string.match ( lnh , '^%S+$' )  --'^(.)%>'    if  crct and cortam[crct]  then      cor_tam[l] = {}      cor_tam[l]['fundo'] = cortam[crct].fundo      cor_tam[l]['cor']   = cortam[crct].cor      cor_tam[l]['tam']   = cortam[crct].tam    else      cor_tam[l] = cor_tam[l-1]      end    end  arquivo_tamanho = max(trecho_max+1,l)  file:close()  for l = 0 , tabela_t-1  do    tabela_linha(l)    end  carregar_linhas()  end
--[[ Em um conjunto de linhas há mudanças Um ponto está em um número de linha Sejam pontos A e B consecutivos Entre eles as linhas apontam para uma tabela relativa ao ponto A , ou seja , a mesma tabela Ao ser inserido um ponto C entre A e B , a tabela que era correspondente a A passa a ser correspondente a C e é criada uma tabela nova para o ponto A e os dados copiados Assim , as linhas entre C e B continuam apontando para a tabela certa É apropriado , pois pode não haver B , então vale até o fim do arquivo Entre A e C é preciso apontar para a tabela nova com os dados do ponto A ]] function processar_linha(l,nao__alterar_tabela)                             -- quando houve uma mudança na linha ou                             -- é uma linha nova inserida
 if  not (1 <= l and l <= arquivo_tamanho)  then  return  end
 alteracao = false  cdg = string.match ( arquivo[l] , '^%S+$' )  if  cdg and cortam[cdg] and (cor_tam[l].fundo ~= cortam[cdg].fundo or cor_tam[l].cor ~= cortam[cdg].cor or cor_tam[l].tam ~= cortam[cdg].tam)  then    if  cor_tam[l] == cor_tam[l-1]  then      cor_tam_n = {}      cor_tam_n.fundo = cor_tam[l].fundo      cor_tam_n.cor   = cor_tam[l].cor      cor_tam_n.tam   = cor_tam[l].tam      i = l - 1      while  cor_tam[i] == cor_tam[l] and 0 <= i  do        cor_tam[i] = cor_tam_n        i = i - 1        end      end
   cor_tam[l]['fundo'] = cortam[cdg].fundo    cor_tam[l]['cor']   = cortam[cdg].cor    cor_tam[l]['tam']   = cortam[cdg].tam
   alteracao = true
 else
   if  not (cdg and cortam[cdg]) and (cor_tam[l] ~= cor_tam[l-1])  then      cor_tam[l].fundo = cor_tam[l-1].fundo      cor_tam[l].cor   = cor_tam[l-1].cor      cor_tam[l].tam   = cor_tam[l-1].tam      t = cor_tam[l-1]      i = l-1      while  cor_tam[i] == t and 0 <= i  do        cor_tam[i] = cor_tam[l]        i = i - 1        end      alteracao = true      end
   end
 if  alteracao and not nao__alterar_tabela  then    for  i = l , trecho_inicio+trecho_max+2  do      tabela_linha(i)      end    end
 end
function rest_tam_min()    -- número mínimo de linhas , seria solução temporária  if  arquivo_tamanho < trecho_max+1  then    for  l = arquivo_tamanho+1 , trecho_max+1  do  arquivo[l] = ""  end    arquivo_tamanho = trecho_max+1    end  end
function menu_inicio()    selecao_adicionar('-O-')    buscaX = floor(width/(charw*3))    buscaY = 1    buscar(1,true)    selecao_limpar()    end
function love.load()
love.graphics.setBackgroundColor(64,64,64)
cursorX = 1  -- posição  x  na tela em caracteres , à esquerda de qual caractere , começa em 1 cursorY = 1  -- posição  y  na tela em caracteres começando em 1 cursorC = 1  -- número do byte correspondente na string da linha , começa em 1
-- selecao inicio e fim em variaveis do cursor --selecao = nil    -- booleana , há seleção  conflito de nomes selecao1X = nil selecao1Y = nil selecao1C = nil -- selecao2X = nil -- selecao2Y = nil -- selecao2C = nil
sel = {}
buscaX = 50 buscaY = 50
-- deixei diferente de nil aquelas que recebem valores inicialmente determinando as outras expr = nil  -- expressão (string) exprT = 1  -- número de palavras exprN = 1  -- número da primeira palavra da expressão na linha exprX = nil  -- número do primeiro caractere na linha exprY = 1  -- número da linha exprF = nil  -- número do último caractere da expressão na linha exprx = nil  -- índice do byte correspondente ao caractere número exprX exprf = nil  -- índice do byte correspondente ao caractere número exprF
cantox = 10  cantoy = 30  -- canto superior esquerdo da área usada para mostrar o                          -- texto e as imagens , acima e à esquerda podem ser                          -- mostradas outras informações (por enquanto a palavra                          -- salvo quando depois de pressionas ctrl+s terminou de                          -- salvar) px = cantox  py = cantoy
trecho_inicio = 1  -- linha inicial no texto que é mostrada na tela no momento
trecho_max = 24  -- máximo inicial de linhas mostradas , alterando o tamanho da fornte muda , depois talvez encontre nomes melhores
arquivo = {}  -- lista de linhas , strings
arquivo_tamanho = 0  -- número de linhas do arquivo
max_imgs = 50  -- tamanho da array usada para imagens , vou usar índices módulo               -- max_imgs para não ter que relocar               -- imagens que "surgem" na parte superior são colocadas abaixo de               -- img_primeira e as que "surgem" abaixo depois de img_ultima , nos               -- dois casos circulando em caso de extrapolar img_primeira = 1 -- o índice da primeira imagem no momento , vou considerar  (img_ultima - img_primeira) mod max_imgs  ==  max_imgs - 1  como significando nenhuma imagem , então o número máximo de imagens é max_imgs - 1 -- img_ultima = 0  -- não sei por que comentei img = {}   -- conjunto de imagens imgx = {}  -- conjunto correspondente de coordenadas x imgy = {}  -- conjunto correspondente de coordenadas y imgwo = {} -- conjunto correspondente de larguras originais dos arquivos de imagens imgw = {}  -- conjunto correspondente de larguras a ser mostradas na tela em número           -- de caracteres
tabela = {} tabela_t = 100 for  i = 0 , tabela_t-1  do    tabela[i] = {}    end
BRANCO = {255,255,255}
cor = {} cor.a = {0,0,255} cor.v = {0,255,0}
codigos = '\n'  --'\na>\nv>'
cortam = {} cor_tam = {}                     -- cor e tamanho do texto da linha cor_tam[0] = {} cor_tam[0]['fundo'] = {64,64,64} cor_tam[0]['cor'] = {255,255,255}    -- cor_tam[l] será igual à tabela para a última cor_tam[0]['tam'] = 0            -- linha especificada e não uma cópia , apenas                                 -- para linhas onde há mudança haverá uma                                 -- tabela nova , as linhas começam em 1 ,                                 -- cor_tam[0] conterá os valores padrão
especiais = '\n'  --'\ntestando \nteste \nçççççççç \naqui \nãoãoãoão \nduas palavras \nSimone Spoladori \nFernanda Vasconcelos \nKate Bell \nbanda \n'
visualizacao = {}
largura_cursor = 2
carregar_arquivo()
fonte_min = 4 fonte_max = 44 fnt_tam = {8,16,24,32} fonte = {} fonte_tamanho = fnt_tam[4] -- "/usr/share/fonts/truetype/dejavu/fonte.ttf" -- "/usr/share/fonts/truetype/liberation/LiberationMono-Regular.ttf" -- copiei um arquivo de fonte monospace para o diretório contendo main.lua mainFont = love.graphics.newFont("fonte.ttf",20); love.graphics.setFont(mainFont); charw = mainFont:getWidth("a")  -- largura dos caracteres em pixels charh = mainFont:getHeight()  -- altura , parece que estas funções não são exatas
height = love.graphics.getHeight()  -- altura da janela do programa width = love.graphics.getWidth()    -- largura da janela do programa heightc = floor((height-py)/charh)  -- número máximo de linhas que aparecem na tela widthc = floor((width-px)/charw)    -- número máximo de colunas que aparecem na tela
love.keyboard.setKeyRepeat(true)    -- ativa a repetição automática do teclado
insert_mode = false
tempo = 0  -- usado para medir tempos em love.update
menu_inicio()
end
function love.update(dt)
 if gameIsPaused then return end  -- se a janela está se o foco não carregar o processador , não atrasar outros programas , update é executado com muita frequência
 tempo = tempo + dt
 if  not arrastando  and  0.5 < tempo  then  carregar_linhas()  processar_linha(trecho_inicio+cursorY-1)  tempo = 0  end
 if  arrastando  then    x , y = love.mouse.getPosition()    px = floor((pxa + x - drgx1)/charw)*charw    buscaX = buscaXa + floor((x - drgx1)/charw)    buscaY = buscaYa + floor((y - drgy1)/charh)    ir_para_linha(trecho_inicioa - floor(( y - drgy1)/charh))    if  0.3 < tempo  then      carregar_linhas()      tempo = 0      end    end  end
rectangle = love.graphics.rectangle
function retangulo(x,y,tx,ty)  rectangle('fill',px+charw*x,py+charh*y,charw*tx,charh*ty)  end
function love.draw()
 linha_cursor = trecho_inicio+cursorY-1
 if gameIsPaused then return end  -- se a janela está se o foco não carregar o processador , não atrasar outros programas , draw é executado com muita frequência
 if  lento  then  love.timer.sleep( 1/4 )  end
 i = 0  for l = trecho_inicio , trecho_inicio + trecho_max do    if  not arquivo[l]  then  break  end    desenhar_linha_fundo_normal(l,i)    i = i + 1    end
 i = 0  for l = trecho_inicio , trecho_inicio + trecho_max do    if  not arquivo[l]  then  break  end    desenhar_linha_fundo_alterado(l,i)    i = i + 1    end
 love.graphics.setColor(255,255,255)  i = 0  for l = trecho_inicio , trecho_inicio + trecho_max do    if  not arquivo[l]  then  break  end    desenhar_linha_imagens(l,i)    i = i + 1    end
 i = 0  for l = trecho_inicio , trecho_inicio + trecho_max do    if  not arquivo[l]  then  break  end    desenhar_linha_normal(l,i)    i = i + 1    end
 i = 0  for l = trecho_inicio , trecho_inicio + trecho_max do    if  not arquivo[l]  then  break  end    desenhar_linha_caracteres(l,i)    i = i + 1    end
 if  mensagem  then  love.graphics.print(mensagem,1,1)  end
 end
function iterador_valido(it)    return pcall(it)    end
function tabela_linha(l)
   if  not (1 <= l and l <= arquivo_tamanho)  then  return  end
   linha = arquivo[l]
   cursor_desenhado = false    x = 1  X = 1    fundol = cor_tam[l].fundo    corl = cor_tam[l].cor    tam = 2 ^ (cor_tam[l].tam/8)    tamo = tam
   lista = {}
   repeat        palavra = false        espacos , palavra  =  arquivo[l]:match('(%s*)(%S+)',x)        if  not palavra  then  break  end        esp_t = espacos:len()
       if  cortam[palavra]  then            fundol = cortam[palavra].fundo            corl = cortam[palavra].cor            str_t = palavra:len()            fundo = fundol            cor = corl            entrada = {}            entrada.esp   = ''            entrada.str   = (' '):rep(palavra:len())            entrada.fundo = fundo            entrada.cor   = cor            entrada.tam   = tamo            entrada.x     = X + esp_t - 1            entrada.vsl   = false            entrada.cmpr  = numero_de_caracteres(palavra)            table.insert(lista,entrada)
       else
           fundo = fundol            cor = corl            tam = tamo
           iterador = especiais:gmatch('\n('..palavra..'%s[^\n]-)\n')
           vsl = false            if  3 <= palavra:len()  then    --and iterador_valido(iterador)
               --for  cnd  in  iterador  do                repeat  ok , cnd = pcall(iterador)  if  not (ok and cnd)  then  break  end
                   cnd = cnd:sub(1,-2)  vsl = visualizacao[cnd]
                   if  vsl and (arquivo[l]..' '):find(cnd..'[%s]',x) == x+espacos:len()  then
                       str = cnd    str_t = str:len()                        if  vsl.fundo  then    fundo = vsl.fundo    end                        if  vsl.cor    then    cor   = vsl.cor      end                        if  vsl.tam    then  tam = 2 ^ (vsl.tam/8)  else  tam = 1  end                        if  l == trecho_inicio+cursorY-1  then                            if  x+esp_t < cursorC and cursorC < x+esp_t+str_t  then                                pos  = tamo*(X+esp_t-1) + tam*(cursorX-1 - (X+esp_t-1))                                cy1  = l - trecho_inicio - (tam-1)/2                                cy2  = l - trecho_inicio + tam - (tam-1)/2                                ccor = cor                                clrg = tam*largura_cursor                                cursor_desenhado = true                                end                            end
                       break                        end
                   vsl = false
                   until false                end
           if  not vsl  then                tam = tamo                str = palavra                str_t = str:len()                end
           entrada = {}            entrada.esp   = espacos            entrada.str   = str            entrada.fundo = fundo            entrada.cor   = cor            entrada.tam   = tam            entrada.x     = X + esp_t - 1            entrada.vsl   = vsl            entrada.cmpr  = numero_de_caracteres(str)            table.insert(lista,entrada)
           end
       X = X + numero_de_caracteres_r(l,x,x+esp_t+str_t) - 1        x = x + esp_t + str_t
       until false
   if  not cursor_desenhado  then        pos  = tamo*(cursorX-1)        cy1  = l - trecho_inicio - (tamo-1)/2        cy2  = l - trecho_inicio + tamo - (tamo-1)/2        ccor = BRANCO        clrg = tamo*largura_cursor        end
   tabela[l%tabela_t].fundo = cor_tam[l].fundo    tabela[l%tabela_t].cor   = cor_tam[l].cor    tabela[l%tabela_t].tam   = tamo    tabela[l%tabela_t].lista = lista    tabela[l%tabela_t].cx    = pos    tabela[l%tabela_t].cy1   = cy1    tabela[l%tabela_t].cy2   = cy2    tabela[l%tabela_t].ccor  = ccor    tabela[l%tabela_t].clrg  = clrg
   img = {}    i = 0    pos = nil    pos2 = 1    pattern = "["..sep_nome_imagem.."]["..sep_nome_imagem.."]([^"..sep_nome_imagem.."].-)["..sep_nome_imagem.."]["..sep_nome_imagem.."]"    repeat        pos , pos2 , imgnm = ('  '..arquivo[l]..'  '):find( pattern , pos2-1 )        if  pos  then            imgnm = imgnm:gsub("%s","_"):gsub("[%:%/%?%=]+","%.%.") .. ".jpg"            ok , imagem = pcall(love.graphics.newImage, "img/" .. imgnm )            if  ok  then                i = i + 1                img[i] = {}                img[i].i = imagem                inicio , fim = arquivo[l+1]:find( "'[^']-'" , pos-1 )                img[i].wo = imagem:getWidth()                if  inicio  then                    inicio = numero_de_caracteres_r(l+1,1,inicio)                    fim = numero_de_caracteres_r(l+1,1,fim)                    img[i].x = tamo*(inicio-1)                    img[i].w = tamo*(fim - inicio + 1)                else                    img[i].x = tamo*(numero_de_caracteres_r(l,1,pos)+1)                    img[i].w = tamo*8                    end                end            end        until not pos
       tabela[l%tabela_t].img = img        tabela[l%tabela_t].num_img = i
   end
function desenhar_linha_normal(l,i)
   tamo  = tabela[l%tabela_t].tam    coro  = tabela[l%tabela_t].cor
   lista = tabela[l%tabela_t].lista    n = 1    while  lista[n]  do
       espacos = lista[n].esp        str     = lista[n].str        x       = lista[n].x
       if  not lista[n].vsl  then            cor     = lista[n].cor    if  not cor  then    cor = coro    end            love.graphics.setColor(cor)            love.graphics.print( str , px + tamo*charw*x , py+i*charh - (tamo-1)*charh/2 , 0 , tamo , tamo )            end
       n = n + 1
       end
   end
function desenhar_linha_fundo_normal(l,i)
   fundo = tabela[l%tabela_t].fundo    tamo  = tabela[l%tabela_t].tam
   love.graphics.setColor(fundo)    rectangle( 'fill' , 0 , py + charh*(i - (tamo-1)/2) , width , charh )
   lista = tabela[l%tabela_t].lista    n = 1    while  lista[n]  do
       fundo = lista[n].fundo    if  not fundo  then    fundo = fundoo    end        tam   = lista[n].tam      if  not tam    then    tam = tamo        end        x     = lista[n].x        cmpr  = lista[n].cmpr
       love.graphics.setColor(fundo)
       if  not lista[n].vsl  then            esp_t = lista[n].esp:len()            x = x-esp_t            retangulo( tamo*x , i - (tam-1)/2 , tam*100 , 1 )            end
       n = n + 1
       end
   end
function desenhar_linha_fundo_alterado(l,i)
   lista = tabela[l%tabela_t].lista
   fundoo = tabela[l%tabela_t].fundo    tamo   = tabela[l%tabela_t].tam
   n = 1    while  lista[n]  do
       fundo = lista[n].fundo    if  not fundo  then    fundo = fundoo    end        tam   = lista[n].tam      if  not tam    then    tam   = tamo      end        x     = lista[n].x        cmpr  = lista[n].cmpr
       love.graphics.setColor(fundo)
       if  lista[n].vsl  then
           retangulo( tamo*x , i - (tam-1)/2 , tam*cmpr , tam )            end
       n = n + 1
       end
   end
function desenhar_linha_caracteres(l,i)
   tamo  = tabela[l%tabela_t].tam    coro   = tabela[l%tabela_t].cor
   lista = tabela[l%tabela_t].lista    n = 1    while  lista[n]  do
       if  lista[n].vsl  then            str = lista[n].str            cor = lista[n].cor    if  not cor  then    cor = coro    end            tam = lista[n].tam    if  not tam  then    tam = tamo    end            x   = lista[n].x            love.graphics.setColor(cor)            love.graphics.print( str , px + charw*tamo*x , py+i*charh - (tam-1)*charh/2 , 0 , tam , tam )            love.graphics.setLineWidth(tam*largura_cursor)            end
       n = n + 1
       end
   if  l == trecho_inicio+cursorY-1  then        pos  = tabela[l%tabela_t].cx        cy1  = tabela[l%tabela_t].cy1        cy2  = tabela[l%tabela_t].cy2        ccor = tabela[l%tabela_t].ccor        clrg = tabela[l%tabela_t].clrg        love.graphics.setColor(ccor)        love.graphics.setLineWidth(clrg)        love.graphics.line( px+charw*pos , py+charh*cy1 , px+charw*pos , py+charh*cy2 )        end
   end
function desenhar_linha_imagens(l,i)    img = tabela[l%tabela_t].img    n = 1    while  img[n]  do        love.graphics.draw( img[n].i , px + charw*img[n].x , py + charh*(i+1) , 0 , charw*img[n].w/img[n].wo )        n = n + 1        end    end
function love.mousepressed(x, y, button)
 if button == 'l' then  -- determinar posição do cursor e rolar                         -- bidimensionalmente a tela    drgx1 = x    drgy1 = y    pxa = px    pya = py    buscaXa = buscaX    buscaYa = buscaY    trecho_inicioa = trecho_inicio    arrastando = true    end
 mensagem = nil
--a posição y da linha é  y = charh*(l - (tam-1)/2) --l = y/charh + (tam-1)/2 if  button == 'l'  then  cliqueY = floor(y/charh)  local tamtxt = tabela[(trecho_inicio+cliqueY-1)%tabela_t].tam  if  apertada('lshift')  then    cliquex , cliqueX = endereco_ou_proximo_r(trecho_inicio+cliqueY-1,floor((x+tamtxt*charw/2-px)/(tamtxt*charw))+1)    i , f , url1 = arquivo[trecho_inicio+cliqueY-1]:sub(1,cliquex-1):find("(%S+)$")    i , f , url2 = arquivo[trecho_inicio+cliqueY-1]:sub(cliquex    ):find("^(%S+)")    love.system.openURL( url1..url2 )  else    cursorY = min(arquivo_tamanho-trecho_inicio+1,cliqueY)    cursorC , cursorX = endereco_ou_proximo_r(trecho_inicio+cursorY-1,floor((x+tamtxt*charw/2-px)/(tamtxt*charw))+1)    tabela_linha(trecho_inicio+cursorY-1)    end  end
if  button == 'r'  then  exprY = floor(y/charh)  tam = tabela[(trecho_inicio+exprY-1)%tabela_t].tam  cliquex , cliqueX = endereco_ou_proximo_r(trecho_inicio+exprY-1,floor((x+tam*charw/2-px)/(tam*charw))+1)  -- floor((x-px)/(tam*charw))+1    -- (x+tam*charw/2-px)/tam*charw)+1  aux , exprN = arquivo[trecho_inicio+exprY-1]:sub(1,cliquex):gsub("[^"..sep_palavra.."]+","")
     str1 = arquivo[trecho_inicio+exprY-1]:sub(1,cliquex-1):match('[^'..sep_palavra..']+$')      str2 = arquivo[trecho_inicio+exprY-1]:sub(cliquex):match('^[^'..sep_palavra..']+%>?')
     if  str1 and str2  then        love.system.setClipboardText(str1..str2)
       palavra = str1..str2
       x = cliquex - str1:len()
       str = palavra
       if  3 <= palavra:len()  then            for  cstr  in  especiais:gmatch('\n('..palavra..'%s[^\n]-)\n')  do                cstr = cstr:sub(1,-2)
               if  (arquivo[trecho_inicio+exprY-1]..' '):find(cstr..'[%s]',x) == x  then  --cvsl and                    str = cstr                    break                    end                end            end
       end
   if  str == palavra  then        str1 = ('  '..arquivo[trecho_inicio+exprY-1]):sub(1,2+cliquex-1):reverse():match('^(.-)%s[%s%>]'):reverse()        str2 = (arquivo[trecho_inicio+exprY-1]..'  '):sub(cliquex):match('^(.-[%s%>])%s')
       if  str1 and str2  then            if  str2:sub(-1,-1) == ' '  then    str2 = str2:sub(1,-2)    end            str = str1..str2            if  str == arquivo[trecho_inicio+exprY-1]  then  str = palavra  end            end        end
              mensagem = '|'..str..'|'
   if  not tab  then      selecao_limpar()      selecao_adicionar(str)      buscaX = cliqueX - numero_de_caracteres(str1) + floor(px/charw)    buscaY = exprY      if  apertada('lshift')  then  buscar(-1,false)  else  buscar(1,true)  end    else      selecao_adicionar(str)      end  end
 if button == "wd"  then
   p = floor((width-love.mouse.getX()) / charw) + 1
   if  apertada('lctrl')  then      if  fonte_min < fonte_tamanho  then        fonte_tamanho = fonte_tamanho - 1        mainFont = love.graphics.newFont("fonte.ttf",fonte_tamanho)        love.graphics.setFont(mainFont)        charw = mainFont:getWidth("a")        charh = mainFont:getHeight()        heightc = max(1,floor((height-py)/charh)-1)        widthc  = max(1,floor((width -px)/charw)-1)        trecho_max = heightc        if  arquivo_tamanho < trecho_max+1  then          for  lnh = arquivo_tamanho+1 , trecho_max+1  do  arquivo[lnh] = ""  end          end
       carregar_linhas()        end    else      rolar(p)      end
 end
 if button == "wu"  then
   p = floor((width-love.mouse.getX()) / charw) + 1
   if  apertada('lctrl')  then      if  fonte_tamanho < fonte_max  then        fonte_tamanho = fonte_tamanho + 1        mainFont = love.graphics.newFont("fonte.ttf",fonte_tamanho)        love.graphics.setFont(mainFont)        charw = mainFont:getWidth("a")        charh = mainFont:getHeight()        heightc = max(1,floor((height-py)/charh)-1)        widthc  = max(1,floor((width -px)/charw)-1)        trecho_max = heightc
       carregar_linhas()        end    else      rolar(-p)      end
   end
 end
function love.mousereleased(x, y, button)  if button == 'l' then    arrastando = false    end  end
function love.keypressed(key)
 caractere = nil
 if  key == 'lctrl'  then  selecao_limpar()  end
 if  apertada('lshift') or apertada('rshift')  then  shift = true  else  shift = false  end
 if  apertada('lctrl') or apertada('rctrl')  then  ctrl = true  else  ctrl = false  end
 if  apertada('lalt')  then  lalt = true  else  lalt = false  end
 if  apertada('ralt')  then  ralt = true  else  ralt = false  end
 if  apertada('tab')  then  tab = true  else  tab = false  end
 if  key == 'f5'  then  processar_linha(trecho_inicio+cursorY-1)  end
 if  key == 's'  and  ctrl  then    conteudo = ""    for  l , v  in  ipairs(arquivo)  do      conteudo = conteudo .. v .. "\n"      end    success = love.filesystem.write( "arquivo.txt" , conteudo )    if  success  then  mensagem = "salvo"  else  mensagem = "não foi possível salvar\n"  return  end    return    end
 if  key == 'c'  and  lalt  then  carregar_configuracao()  carregar_linhas()  end
 if key == 'kpenter' then    gameIsPaused = true    local linha = '  '    local files = love.filesystem.getDirectoryItems('acr')    for k, file in ipairs(files) do      file = file:match('^(.+)%.%w+$')      linha = linha .. file .. '  '      end      inserir_string(linha)    gameIsPaused = false    return    end
 if  key == 'up' and  lalt  then  rolar(-1)  return  end
 if  key == 'down' and  lalt  then  rolar(1)  return  end
 if  key == 'return'  then    table.insert( arquivo , trecho_inicio+cursorY , arquivo[trecho_inicio+cursorY-1]:sub(cursorC) )    table.insert( cor_tam , trecho_inicio+cursorY , cor_tam[trecho_inicio+cursorY-1] )    arquivo[trecho_inicio+cursorY-1] = arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1)    processar_linha(trecho_inicio+cursorY  ,true)    processar_linha(trecho_inicio+cursorY-1,true)    arquivo_tamanho = arquivo_tamanho + 1    cursor_proxima_linha()    rolar_ao_cursor()    carregar_linhas()    return    end
 if  key == 'home'  then      cursorC = 1      cursorX = 1      if  ctrl  then        px = cantox        py = cantoy        trecho_inicio = 1  menu_inicio()        end    rolar_ao_cursor()    tabela_linha(trecho_inicio+cursorY-1)    return    end
 if  key == 'end'  then    if  not ctrl  then      cursorC = arquivo[trecho_inicio+cursorY-1]:len() + 1      cursorX = numero_de_caracteres_r(trecho_inicio+cursorY-1) + 1    else      trecho_inicio = max(1,arquivo_tamanho - trecho_max)  carregar_linhas()  --carregar_imagens()      end    rolar_ao_cursor()    tabela_linha(trecho_inicio+cursorY-1)    return    end
 if  key == 'r'  and  ctrl  then  carregar_arquivo()  return  end
 if  key == "v"  and  ctrl  then    clipboard = love.system.getClipboardText()    aux1 = arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1)    aux2 = arquivo[trecho_inicio+cursorY-1]:sub(cursorC)    a , b , s1 , s2 = string.find( clipboard , "^([^\n]*)(.*)$" )    arquivo[trecho_inicio+cursorY-1] = aux1 .. s1    i = 0    ul = s1    for  l in string.gmatch( s2 ,"\n([^\n]*)")  do      i = i + 1      table.insert( arquivo , trecho_inicio+cursorY-1+i , l )      ul = l      end    cursorY = cursorY + i    arquivo[trecho_inicio+cursorY-1] = arquivo[trecho_inicio+cursorY-1] .. aux2    cursorC = ul:len() + 1    cursorX = numero_de_caracteres(ul) + 1    carregar_linhas()    return    end
 if  key == 'c'  and  ctrl  then    selecao = nil    if  selecao1Y == cursorY  then      love.system.setClipboardText( arquivo[trecho_inicio+cursorY-1]:sub(selecao1C,cursorC-1) )      return    else      clipboard = arquivo[trecho_inicio+selecao1Y-1]:sub(selecao1C)      for  l = selecao1Y+1 , cursorY-1  do        clipboard = clipboard .. "\n" .. arquivo[trecho_inicio+l-1]        end      clipboard = clipboard .. "\n" .. arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1)      love.system.setClipboardText( clipboard )      end    return    end
 if  (key == 'kp2' or key == 'kp3')  then    busca = true    if  key == 'kp2'  then  direcao = -1  else  direcao = 1  end    buscar(direcao,false)
 elseif  key == 'left' then    if  ctrl  then      if  cursorC == 1  then        cursor_linha_anterior()      else        cursorC = (arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1)):find("["..sep_palavra.."]+[^"..sep_palavra.."]-$")        if  not cursorC  then cursorC = 1  end        cursorX = numero_de_caracteres_r(trecho_inicio+cursorY-1,1,cursorC)        end  else    if      2 < cursorC  then      cursorC = cursorC - tam_caractere_ant_r(trecho_inicio+cursorY-1,cursorC)      cursorX = cursorX - 1    elseif  cursorC == 2  then      cursorC = 1      cursorX = 1    else      cursor_linha_anterior()      end    end    rolar_ao_cursor()
 elseif  key == 'right'  then    if  ctrl  then      if  arquivo[trecho_inicio+cursorY-1]:len() < cursorC  then        cursor_proxima_linha()      else        cursorC = arquivo[trecho_inicio+cursorY-1]:find("["..sep_palavra.."][^"..sep_palavra.."]",cursorC)        if  not cursorC  then cursorC = arquivo[trecho_inicio+cursorY-1]:len()+1  else  cursorC = cursorC + 1  end        cursorX = numero_de_caracteres_r(trecho_inicio+cursorY-1,1,cursorC-1) + 1        end    else      if  shift  then        if  not selecao  then          selecao1X = cursorX  selecao1Y = cursorY  selecao1C = cursorC          selecao = true          end      else        selecao = nil        end    if      cursorC+1  < arquivo[trecho_inicio+cursorY-1]:len()  then      cursorC = cursorC + tamanho_caractere_r(trecho_inicio+cursorY-1,cursorC)      cursorX = cursorX + 1    elseif  cursorC <= arquivo[trecho_inicio+cursorY-1]:len()  then      cursorC = cursorC + tamanho_caractere_r(trecho_inicio+cursorY-1,cursorC)      cursorX = cursorX + 1    else      cursor_proxima_linha()      end    end    rolar_ao_cursor()
 elseif  key == 'up'  then    processar_linha(trecho_inicio+cursorY-1)    if  cursorY == 1  then  rolar(-1)    elseif  1 < cursorY  then  cursorY = cursorY - 1  cursorC , cursorX = endereco_ou_proximo_r(trecho_inicio+cursorY-1,cursorX)      end    rolar_ao_cursor()
 elseif  key == 'down'  then    processar_linha(trecho_inicio+cursorY-1)    if  trecho_max < cursorY  then  rolar(1)    else  cursorY = cursorY + 1  cursorC , cursorX = endereco_ou_proximo_r(trecho_inicio+cursorY-1,cursorX)      end    rolar_ao_cursor()
 elseif  key == 'backspace'  then    if  ctrl  then      if  cursorC == 1  then        if  cursorY == 1  then  return  end        cursorC = arquivo[trecho_inicio+cursorY-2]:len() + 1        arquivo[trecho_inicio+cursorY-2] = arquivo[trecho_inicio+cursorY-2] .. table.remove( arquivo , trecho_inicio+cursorY-1 )        cursorY = cursorY - 1        arquivo_tamanho = arquivo_tamanho - 1        end
     p = (arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1)):find("["..sep_palavra.."]+[^"..sep_palavra.."]-$")      if  not p  then  p = 1  aux = ""  else  aux = arquivo[trecho_inicio+cursorY-1]:sub(1,p)  end      aux = aux .. arquivo[trecho_inicio+cursorY-1]:sub(cursorC,arquivo[trecho_inicio+cursorY-1]:len())      arquivo[trecho_inicio+cursorY-1] = aux      cursorC = p      cursorX = numero_de_caracteres_r(trecho_inicio+cursorY-1,1,cursorC)    elseif  cursorC == 1  then      if  cursorY == 1  then  return  end      cursorC = arquivo[trecho_inicio+cursorY-2]:len() + 1      cursorX = numero_de_caracteres_r(trecho_inicio+cursorY-2) + 1      arquivo[trecho_inicio+cursorY-2] = arquivo[trecho_inicio+cursorY-2] .. table.remove( arquivo , trecho_inicio+cursorY-1 )      table.remove(cor_tam,trecho_inicio+cursorY-1)      cursorY = cursorY - 1      arquivo_tamanho = arquivo_tamanho - 1    else      tamanho = tam_caractere_ant_r(trecho_inicio+cursorY-1,cursorC)      aux = arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1-tamanho) .. arquivo[trecho_inicio+cursorY-1]:sub(cursorC,arquivo[trecho_inicio+cursorY-1]:len())      arquivo[trecho_inicio+cursorY-1] = aux      cursorC = cursorC - tamanho      cursorX = cursorX - 1      end    rest_tam_min()    rolar_ao_cursor()    carregar_linhas()
 elseif  key == 'kp1'  then    mensagem = exprX .. "|" .. exprF
 elseif  key == 'insert'  then  insert_mode = not insert_mode
 else
   end
 tabela_linha(trecho_inicio+cursorY-1)
 end
function love.textinput(key)
 if  apertada('lshift') or apertada('rshift')  then  shift = true  else  shift = false  end
 if  key == 'c'  and  lalt  then  return  end
 caractere = key
   if  insert_mode  then      aux = arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1) .. caractere .. arquivo[trecho_inicio+cursorY-1]:sub(cursorC+caractere:len(),arquivo[trecho_inicio+cursorY-1]:len())    else      aux = arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1) .. caractere .. arquivo[trecho_inicio+cursorY-1]:sub(cursorC,arquivo[trecho_inicio+cursorY-1]:len())      end    arquivo[trecho_inicio+cursorY-1] = aux    cursorC = cursorC + tamanho_caractere(caractere)    cursorX = cursorX + 1    rolar_ao_cursor()
 tabela_linha(trecho_inicio+cursorY-1)
 end
function inserir_linha(linha)  table.insert( arquivo , trecho_inicio+cursorY , linha )  arquivo_tamanho = arquivo_tamanho + 1  carregar_linhas()  end
function inserir_string(s)  aux = arquivo[trecho_inicio+cursorY-1]:sub(1,cursorC-1) .. s .. arquivo[trecho_inicio+cursorY-1]:sub(cursorC,arquivo[trecho_inicio+cursorY-1]:len())  arquivo[trecho_inicio+cursorY-1] = aux  cursorC = cursorC + s:len()  cursorX = cursorX + numero_de_caracteres(s)  rolar_ao_cursor()  tabela_linha(trecho_inicio+cursorY-1)  end
function love.keyreleased(key)
 if  apertada('lshift') or apertada('rshift')  then  shift = true  else  shift = false  end
 if  apertada('lctrl') or apertada('rctrl')  then  ctrl = true  else  ctrl = false  end
 if  apertada('lalt')  then  lalt = true  else  lalt = false  end
 if  apertada('ralt')  then  ralt = true  else  ralt = false  end
 if  apertada('tab')  then  tab = true  else  tab = false  end     end
function love.focus(f)  gameIsPaused = not f  end
0 notes
asdfgdfme · 8 years ago
Text
relações
Tentei resumir e tornar mais preciso parte de algumas coisas que postei anteriormente , talvez alguma coisa mudei um pouco , são idéias de conceitos , de formas de ver coisas , tenho a tendência de pensar sem exemplos , parece uma parte introdutória de um texto maior mas é só isto , começo a escrever para idéias ficarem claras para mim mesmo , depois edito , tentei deixar idéias relacionadas próximas no texto
Algo que influenciou as idéias aquí é relação (convencional) cujo conjunto de n-uplas tenha estrutura , o conjunto dos valores em uma coordenada recebendo estrutura desta e os diversos tipos de influências que um conjunto de coordenadas pode ter sobre uma coordenada , tipos de influências mútuas entre coordenadas , uma mesma relação podendo ser união de diversos tipos , generalização de relação permitindo n-uplas parciais (só tendo um subconjunto das coordenadas) , que uma relação acumula informações sobre vários subconjuntos de coordenadas , e o correspondente para relações de aridade qualquer ao que morfismo é para funções (existe algo chamado "alegorias" , mas quero que a idéia seja ponto de partida) Há o relacionamento entre as coisas que existe como parte da realidade As coisas tem sua identidade de sua situação assimétrica neste relacionamento Uma estrutura , um aspecto , uma informação sobre um elemento corresponde a parte do relacionamento em que está envolvido Estrutura , aspecto , informação sobre algo correspondem a parte da situação do elemento na rede de relacionamentos A idéia de estrutura está relacionada com a idéia de partes , um tipo específico de relação , a relação parte-todo , e relacionamento entre as partes Algumas idéias aquí podem ser vistas como generalizações que eliminam algumas assimetrias , como entre parte e todo Uma relação que definimos para entender outras coisas provavelmente corresponde a relacionamentos naturais entre coisas , mas provavelmente a relação definida é um tanto artificial , foi definida com objetivos específicos , delimitada Talvez parte da estrutura que atribuimos às coisas corresponda a estrutura do modelo que usamos Parte disto pode ser subjetivo Talvez até os modelos em mentes diferentes não possam ser integralmente traduzidos uns entre os outros , parte da estrutura que se atribui às coisas sendo subjetiva Mas se há enquadramento no modelo há similaridade de aspectos do modelo com o que é enquadrado Ao conceito , modelo , que quero descrever para descrever relacionamentos vou chamar de relação À partir daquí relação é o que vou descrever , para diferenciar falo em relação convencional Mesmo que haja conjuntos de elementos que formem contínuos , suponho que a realidade consiste de um conjunto discreto (vou usar a palavra "conjunto" no sentido intuitivo , a palavra "discreto" é redundante , conjuntos são discretos , qualquer continuidade que haja não é informação que um conjunto contém , e mesmo quando existe , o aspecto discreto também existe) Tenho a tendência de imaginar o relacionamento natural entre as coisas como uma especie de contínuo , sem partes discretas naturais Mas , o relacionamento natural entre todas as coisas que existem provavelmente consiste de um conjunto discreto de relacionamentos naturais , neste conjunto pode haver possibilidades de definições totais ou parciais uns em função de outros , mas o aspecto discreto de cada um existe Se qualquer coisa relaciona outras entre sí , este relacionamento também consistiria de partes discretas Talvez certos relacionamentos que alguém identifica entre coisas envolvem uma forma subjetiva de ver , ou um esquema específico de representação , então não seria um relacionamento natural , ou o relacionamento natural correspondente tem como parte intrinseca de sí esta forma de ver Às vezes há várias possibilidades de um conjunto de conceitos para uma finalidade , cada conjunto pode ser imaginado cobrindo o que é necessário , e cada conceito em um conjunto é coberto com sobra por conceitos de cada outro conjunto , e parece que nenhum dos conjuntos de conceitos é uma opção mais natural A gente começa a andar em círculos Por exemplo , imaginei usar elementos quaisquer no lugar de relação , um elemento ao estar relacionado com outros relacionaria outros entre sí Como descreví , qualquer relação pode ser vista como construindo ou sendo algo maior que seus termos E se as coisas se constroem umas à partir das outras , como em um dicionário , podería-se usar o conceito de um papel que um elemento tem na existência do outro , cada elemento podendo ter vários papéis , isto tomaria o lugar de ocorrência de elementos como termo de relações (descrito abaixo) Mas fiquei com os conceitos de relação , de rcct e de rccpt descritos mais abaixo , acho que para usar para algo mais do que forma de ver coisas é necessário definições mais específicas ou algo adicional O conceito de relação que vou descrever é algo mais artificial que o conceito de relacionamento , é um modelo , uma forma específica de descrever relacionamentos Relação aquí é entre elementos específicos , não há uma mesma relação deste tipo entre conjuntos diferentes de elementos , mas uma relação convencional pode ser considereda uma relação deste tipo entre conjuntos de que termos das n-uplas são tirados , e uma n-upla pode ser vista como relação deste tipo por pertencer a uma relação convencional , a relação entre as n-uplas de uma relação convencional e delas com a própria relação , vistos como relação deste tipo , é caso particular de um tipo de relação descrito abaixo (rcct) Quando falar de relação me refiro a este tipo de relação , quando falar de relação convencional em refiro a um produto cartesiano e um subconjunto seu Em situações onde preciso de algo como cópias separadas de elementos me refiro a ocorrências do elemento , são diferentes entre sí e diferentes do elemento de que são ocorrência Ocorrências de um elemento são ligações (relações) do elemento com outras coisas em que podemos imaginar uma cópia do elemento Uma relação tem um conjunto de termos , que são ocorrências dos elementos relacionados Os conjuntos de termos de relações diferentes , mesmo quando ocorrência de mesmo elemento , são disjuntos Quando falar sobre termos de uma relação posso estar falando sobre os elementos que ocorrem como termos ou sobre o elemento como termo da relação , depende do contexto Mesmo os conjuntos de termos de relações diferentes sendo disjuntos vou supor que não há cópias diferentes de relações exatamente iguais (acho que não afeta nada que eu descreví) Relações diferentes determinam conjuntos disjuntos de termos Se um elemento ocorre mais de uma vez como termo em uma mesma relação , os papéis que faz são independentes Há relações com um só termo Podem ser vistas como propriedades Uma relação pode ser vista como propriedade do conjunto de elementos relacionados Então se percebe que uma relação tem informação sobre os elementos que ocorrem como termos e informação de relacionamento entre eles Parece que é uma divisão de águas , mas uma relação pode ter , acumular , informações sobre subconjuntos próprios de termos , subconjuntos com um termo são um caso limite Uma relação pode ter várias ocorrências de um mesmo elemento como termo , como quando digo que 6 é maior que 2 e tem 2 como divisor Quando escrever "depende de definição" quero dizer que em uma definição precisa de um tipo de relação de acordo com a idéia de relação descrita aquí , o conceito precisa ser definido porque há mais de uma possibilidade que satisfaz a idéia descrita aquí , por exemplo , acho que é o caso da idéia de restrição de uma relação a um subconjunto de seus termos , mesmo que intuitivamente parece que a descrição determina completamente o que é descrito Mesmo quando não mencionar , o que está sendo descrito pode depender de definição Intuitivamente , uma relação com várias ocorrências de um mesmo elemento como termo determina uma outra com apenas uma ocorrência deste elemento como termo que adiciona o relacionamento entre as ocorrências do elemento como termo à informação que a nova relação tem sobre o elemento , não sei se depende de definição Uma relação é simétrica num conjunto de termos , ocorrências de um mesmo elemento , se não é possível distinguir estes termos com base no que a relação diz Há a idéia de duplicar termos de uma relação obtendo termos simétricos Assim como supus que não há relações iguais , talvez deveria supor que uma relação não tem termos simétricos , mas relação não é relacionamento natural que existe entre os elementos , é um modelo Se qualquer informação sobre um elemento é informação sobre sua situação na rede relacionamento as informações de uma relação sobre termos individuais também é de relacionamento , talvez parte dela de relacionamento com outros termos da relação Mas um relacionamento em que um termo esteja envolvido com elementos que podem incluir outros termos pode ser considerado pela relação como informação sobre o termo individual apenas E uma informação que uma relação tem pode ser de relacionamento entre um conjunto de elementos que são termos , mas a relação pode considerar ela como de relacionamento apenas entre um subconjunto destes termos A definição de uma relação entre um conjunto de elementos provavelmente depende de elementos fora deste conjunto A situação da informação em uma relação sobre elementos individuais é caso extremo de informação sobre subconjuntos de termos Uma relação pode acumular várias informações de relacionamento entre subconjuntos de termos , cada uma delas dependendo de elementos adicionais , alguns podendo ocorrer como outros termos da relação Certos relacionamentos entre um conjunto de elementos são intrínsecamente entre todos os elementos do conjunto , não são união ou consequência , de relacionamentos entre pares ou outros subconjuntos de elementos , mas em uma relação talvez apenas parte dos envolvimentos de parte destes elementos seja parte dos papéis oficiais destes elementos como termos A informação em uma relação corresponde a um conjunto de relacionamentos , alguns dos elementos envolvidos em cada um deles sendo termos Nem todos os envolvimentos de termos nestes relacionamentos são parte dos papéis que estes termos tem oficialmente nesta relação , de relacionamento com outros termos ou de informação sobre o termo individual , em outros envolvimentos que não façam parte dos papéis oficiais dos termos o fato de o elemento ocorrer como termo pode ser visto como acidental O papel de um termo consiste de um conjunto de papéis , cada um deles pode estar ligado a papéis de outros termos na afirmação um relacionamento entre eles , este mesmo relacionamento poderia ser afirmado como propriedades separadas destes termos ou como relacionamentos separados entre subconjuntos deste conjunto de elementos , para que uma relação afirme relacionamentos como relacionamentos e não apenas como propriedades isoladas de elementos é preciso que haja papéis de termos diferentes ligados neste sentido Acho que isto tem papel fundamental em composição de relações (descrita mais abaixo) Então , suponho que uma relação tem definido para cada dependência que informação que a relação afirma tem de um elemento que seja termo da relação , que aspectos do envolvimento deste elemento são parte do papel que esta ocorrência do elemento como termo faz e que tipo de papel , isolado ou ligado com papéis de outros termos , para o envolvimento restante a ocorrência do elemento como termo da relação pode ser vista como acidental Intuitivamente , parece que está claro Então , o conceito de relação aquí inclui a delimitação do que é papel dos elementos como termos da relação , cada papel é parte da dependência que a informação que a relação afirma tem do elemento , o conjunto destas partes pode ser menos que a dependência que existe Os conjuntos de papéis ligados de uma relação são como n-uplas parciais
Se há relações intrínsecamente entre vários elementos , não podem ser reduzidas a relações dois a dois , ou a subconjuntos próprios , entre eles , o relacionamento da própria relação com os seus termos determina a relação entre eles ? O relacionamento da relação com um de seus termos depende intrínsecamente dos outros termos pois trata da relação com eles , mesmo que seja considerado relação entre a relação e o termo , os relacionamentos individuais da relação com seus termos determinam a relação porque cada um destes contém informação de relacionamento com os outros termos , mesmo que em uma relação definida entre a relação e um de seus termos apenas este termo tenha papel oficial Da forma como descreví relação parece algo uniforme , sem estrutura , mas exemplos específicos tem suas características específicas , no mesmo sentido em que se fala da natureza dos elementos de um conjunto , o conceito é que tem pouca estrutura Um diagrama de relações , ou simplesmente diagrama , consistirá de um conjunto de ocorrências de relações , cada termo de cada uma estando ligado a um nó , os termos ligados a um mesmo nó sendo ocorrências do mesmo elemento Pode haver termos diferentes de uma mesma ocorrência de relação , ocorrência do mesmo elemento , ligados a um mesmo nó Em princípio os conjuntos de termos de ocorrências diferentes de relações , mesmo que da mesma , são disjuntos Definindo um tipo de ocorrência de relação em que seja permitido intersecção dos conjuntos de termos , um diagrama talvez poderia ser definido simplesmente como conjunto de ocorrências de relações , os nós sendo termos das ocorrências de relações no diagrama , mas tenho a impressão de que isto cria certa confusão Restrição de relação a um subconjunto dos termos resulta em uma relação com termos correspondentes a estes , ocorrências dos mesmos elementos , o que afirma seria restrição do que a relação original afirma a estes termos , acho que depede de definição Restrições sucessivas devem resultar na mesma relação que a restrição ao conjunto final de termos Extenção de relação é o inverso Uma relação é extenção de uma restrição sua Um diagrama é conexo se é possível ir de um nó a outro por uma sequência de nós cada par consecutivo estando ligado a termos de pelo menos uma mesma ocorrência de relação , não usei isto , mas serve para ter uma idéia melhor do que é diagrama e comparar com outros tipos de diagrama Há também a noção de partes conexas de um diagrama Relações podem ocorrer como termos de relações Um caso importante é quando uma relação entre relações depende de forma importante de uma correspondência entre termos delas , o que ela afirma depende desta correspondência Vou chamar de relação com correspondência (total) de termos , rcct , quando cada conjunto de termos correspondentes tem exatamente um termo de cada relação e cada termo de cada uma delas está em um conjunto de termos correspondentes , correspondência de termos um a um entre as relações Termos correspondentes podem ser e geralmente serão ocorrência de elementos diferentes Em algumas situações talvez seja suficiente ver uma relação como rcct , não havendo correspondência de termos oficial ou forma oficial de determiná-la Em outras talvez seja necessário definir um tipo de rcct em que a correspondência esteja incluída Mesmos comentários valem para rccpt descrita abaixo Pode-se usar algum tipo de rcct com duas relações termo e que comparam as informações contidas nas duas relações termo É como uma ordem parcial "paralela" Pode haver uma rcct de que todas estas rcct sejam restrições a duas relações termo Vou supor que uma rcct tem uma restrição como relação comum e uma como rcct que resulta em rcct , geralmente é esta que será mencionada , com acima , o mesmo para rccpt descrita abaixo Vou chamar de relação com correspondência parcial de termos , rccpt , algo definido através de algo semelhante a diagrama , cada conjunto correspondente de termos correspondendo a um nó , ocorrências de elementos diferentes podendo estar ligadas a um mesmo nó (geralmente é o caso) , e um mesmo termo podendo estar ligado a mais de um nó (não sei se será comum , na minha intuição de rccpt não ocorre) Então para rccpt (talvez diferente do que supus no que postei antes) qualquer conjunto de conjuntos de termos das relações termo da rccpt pode ser o conjunto de correspondências , se usa o que for conveniente Vou chamar os conjuntos correspondentes de termos de uma rccpt ou rcct também de nós Uma rcct é uma rccpt , o que é dito sobre rccpt vale para rcct Geralmente chamo termos de uma rcct ou rccpt de "relação termo" , mas pode ser que também usei apenas a palavra "termo" rccpt  pode ser visto como generalização de diagrama Um diagrama pode ser visto como uma rccpt sem informação adicional Talvez parte do que é definido para diagrama pode ser generalizado para rccpt , como a idéia de diagrama conexo , ou de partes conexas , talvez deveria depender do relacionamento feito pela rccpt Imagino os termos de relações como dispostos horizontalmente Imagino as relações termo de uma rccpt separadas verticalmente Pode-se definir também  rccpt  entre  rccpt , em particular , rcct entre rcct Coisas definidas para relações em geral podem ter , além da versão original , uma versão mais específica para rccpt onde a correspondencia de termos se extende de alguma forma , por exemplo , restrição de relação a um subconjunto de termos na versão mais específica para rccpt inclui a correspondência entre conjuntos correspondentes de termos (que também chamo de nós) da rccpt original e da restrição Restrição de qualquer forma inclui correspondência dos termos da restrição com termos da relação original Pode-se diferenciar entre restrição e seu resultado , mesmo que se use a mesma palavra Pode-se considerar restrição a como rccpt entre o resultado e a relação original Para cada rccpt  R , seja  R'  a  rccpt  R  vista como relação com termos correspondentes aos nós de  R Vou chamar  R'  de '-relação Pode-se considerar um conceito mais geral de relação em que não está definido de quem os termos são ocorrência Pode-se supor que a identidade dos elementos que ocorrem como termo depende da própria '-relação (contraria a intuição de que uma relação depende das identidades anteriores de seus termos) Vou chamar as relações termo de uma rccpt  R  de linhas de  R' , porque imagino termos de relações dispostos horizontalmente e as relações-termo de uma rccpt separadas verticalmente Eu imagino relações com termos arranjados horizontalmente , relação horizontal Uma rccpt , vista apenas como relação , seria imaginada da mesma forma Vista específicamente como rccpt imagino as relações termo horizontais separadas verticalmente A '-relação correspondente , visualizada através da mesma informação , eu imagino na mesma posição , mas com termos da '-relação separados horizontalmente assim como os termos das linhas , imaginando pequena a separação vertical entre as linhas é mais intuitivo Essa forma de visualizar pode facilitar algumas descrições Coisas definidas para relações em geral podem ter , talvez além da versão original , uma versão mais específica para '-relações que inclui correspondência entre linhas , por exemplo , a versão de restrição para '-relações inclui correspondência de linhas da '-relação com suas restrições A versão específica para '-relações pode agir em cada linha conforme a versão normal Uma restrição de uma '-relação faz restrições correspondente nas linhas , dependendo da correspondência de termos da rccpt correspondente , as linhas podem ser atingidas de forma diferente por uma restrição , algumas não atingidas E uma extenção de uma '-relação pode extender qualquer subconjunto de suas linhas Uma restrição da rccpt correspondente a uma '-relação resulta no que vou chamar de restrição vertical da '-relação , inclui naturalmente a correspondência entre as linhas do resultado e as linhas corresondentes na '-relação original e a correspondência de termos entre '-relação e resultado Uma restrição vertical pode acabar com menos termos , dependendo do uso pode-se permitir termos de '-relações sem correspondente nas linhas O oposto é extenção vertical Neste mesmo espírito , pode-se considerar suficiente a definição de quem ocorre como termo em cada linha e não definir quem ocorre como termo das '-relações Relação pode ser vista como generalização de conjunto , os termos generalizam elementos "ocorre como termo" generaliza "é elemento" Conjunto pode ser visto com caso particular de relação que não afirma nada Os termos de '-relações podem ser considerados ocorrência dos conjuntos de termos corresondentes , mas não parece natural Se , na definição de rccpt , em vez de conjunto correspondente de termos houver uma relação com um termo para cada termo no conjunto , os termos de  R'  podem ser considerados como ocorrência destas relações A forma como a '-relação relaciona elas depende depende de quais termos estão em mesma linha da '-relação , mas isso não é problema , qualquer relação específica tem seus detalhes específicos Estas relações podem ter relação com restrições da '-relação a um termo , ocorrência delas , mas não necessáriamente determinam estas restrições Se está definido de quem os termos de uma '-relação são ocorrência e delimitado quais seus papéis então a '-relação é também relação De qualquer forma , pode-se considerar '-relações cujo conjunto de linhas inclui '-relações Talvez seja informação redundante , pois podería-se "abrir" uma linha que seja '-relação fazendo de suas linhas linhas da '-relação principal , é provável que a informação determinada será a mesma , mas pode ser que não , e esta forma de representar pode ressaltar alguma coisa , permitir a descrição ou tratamento mais simples de algumas coisas Em princípio , uma rccpt entre rccpt não precisaria incluir correspondências entre os termos de cada conjunto de relações correspondentes , mas acho que a maioria dos usos deste conceito incluirá estas correspondências e talvez rcct entre cada conjunto de relações correspondentes rcct é algo bidimensional , rcct entre rcct é tridimensional Pode surgir dúvida sobre qual aspecto de algo que está sendo descrito colocar em qual destas dimensões Talvez alguma definição permita mais de uma possibilidade Pode-se definir o conceito de relação de várias dimensões , cada dimensão pode ser correspondente a um tipo de relacionamento , provavelmente generalizado de unidimensional em sua dimensão , relação comum , para matrizes com as dimensões restantes Mas uso a assimetria entre as "dimensões horizontal e vertical" porque quero ver rcct como generalizando conjunto de n-uplas , n-uplas horizontais separadas verticalmente Um conjunto com estrutura pode ser visto como uma relação com um termo para cada elemento Mas vejo relação como generalizando morfismo e não objeto Tenho uma intuição de que uma função preservando estrutura determina morfismos entre cada par de elementos associados pela função , talvez esta idéia tenha relações com o conceito de transformação natural , a função corresponderia aquí a uma rcct e os morfismos determinados às relações termo , talvez não elas próprias mas relações com o mesmo conjunto de elementos ocorrendo como termos , provavelmente relações mais fortes Quero descrever um conceito de composição de relações conforme diagramas Se as relações forem relações convencionais uma composição é aquela que vem à mente , que resulta na relação cujo conjunto de n-uplas (definindo a ordem de alguma forma) consiste das extensões comuns existentes a todo o diagrama (ou às partes conexas ?) de n-uplas que satisfazem as relações que ocorrem no diagrama Intuitivamente a composição mantém apenas a informação de cada ocorrência de relação no diagrama que é compatível de alguama forma com o diagrama Acho que depende de definição , para cada tipo de relação pode haver várias possibilidades de operação composição A composição resulta em uma relação com um termo para cada nó do diagrama , ocorrência do mesmo elemento Uma caracterização maior de composição mais abaixo através de sua extenção a '-diagramas Vou chamar de composição de relações conforme o diagrama ou de composição do diagrama Para cada diagrama , a composição pode estar definida ou não Pode haver relações "vazias" que são resultado quando a composição não estaria definida Se digo "composição não definida" me refiro a estas possibilidades No caso de composição de diagramas de relações convencionais , isto corresponde a o resultado da composição ser o conjunto vazio de n-uplas Intuitivamente , a composição tem um aspecto multiplicativo A composição de relações convencionais binárias seria uma composição como aquí seguida de restrição a dois termos Talvez possa ser definida uma operação união ou soma conforme diagramas que também resulta em uma relação com um termo para cada nó do diagrama , ocorrência do mesmo elemento , e que acumula toda a informação de relacionamento contida no diagrama Acho que a composição pode ser distributiva sobre esta operação Uma operação ou função convencional tem uma estrutura de argumentos que consiste de uma n-upla de argumentos Vou supor relações como estruturas de argumentos em vez de sequência de argumentos Vou usar a notação  o(r a1,...,an) , o  operação ou função , r  relação com termos  a1,...,an , a1,...,an  argumentos , r  estrutura de argumentos Vou deixar em aberto se resulta em resultado simples ou em uma extenção da relação estrutura de argumentos incluindo o resultado como termo Uma expressão determina as operações envolvidas e as subexpressões A notação substitui argumentos em  o(r a1,...,an)  por expressões Por exemplo ,  f(r a1,...,g(s b1,...,bn),...,h(t c1,...,cm))  seria notação para uma expressão Se os resultados de operações forem extenções de suas estruturas de argumentos incluindo o resultado própriamente dito , talvez o resultado de expressões será definido como uma relação que inclui os argumentos de subexpressões , se inclui só os resultados própriamente ditos a expressão e os resultados parciais determinam o relacionamento (imaginar em um diagrama) Então , como expressar a distributividade da composição sobre a união ? Se  D  é a relação entre as relações que ocorrem no diagrama , com uma ocorrência como termo para cada ocorrência no diagrama e cuja informação apenas determina o diagrama , tal que  D  é estrutura de argumentos apropriada para a operação de composição  o , e  d  (minúsculo)  da mesma forma é a relação correspondente ao diagrama cuja união resulta em uma ocorrência de relação do diagrama , o(D  r1,...,U(d s1,...,sm),...,rn) = U(d2 o(D1 r1,...,s1,...,rn) , ... , o(Dn r1,...,sm,...,rn) ) onde  D1,...,Dn  são as relações correspondentes aos diagramas obtidos substituindo a ocorrência da relação  U(d s1,...,sm)  por ocorrências das relações de que  s1,...,sm  são ocorrência (acho que é preciso permitir nós não ligados à ocorrências de relações em diagramas) d2  é a relação correspondente ao diagrama que une as composições o(D1 r1,...,s1,...,rn) , ... , o(Dn r1,...,sm,...,rn) pelos nós correspondentes Talvez seja possível generalizar  o  e  U  para um conjunto maior de relações , que não correspondem a diagramas , em particular , rccpt
'-relações deveriam poder formar diagramas , mas pode ser confuso determinar o que ocorre ligado aos nós Vou chamar de '-diagrama algo determinado por uma correspondência de linhas entre as ocorrências de '-relações , um diagrama para cada conjunto de linhas correspondente em que ocorrem estas relações , tal que estes diagramas diferem apenas pela substituição das relações que ocorrem pelas correspondentes em outro conjunto correspondente de linhas Ou seja , são diagramas feitos "paralelamente" nos conjuntos correspondentes de linhas Vou chamar estes diagramas de linhas do '-diagrama Uma idéia mais geral de diagrama , ocorrências de algum tipo de coisa ligadas de alguma forma é satisfeita , mesmo que não esteja definido quem ocorre como termo das '-relações Então , pode-se extender composição de diagrama para composição de '-diagrama , resultando em '-relação As linhas da '-relação resultante correspondendo a um subconjunto de linhas do '-diagrama , aquelas com composição existente , esta correspondência é parte da operação Vou permitir linhas de '-relações se repetindo em vários conjuntos correspondentes de linhas em '-diagramas , o efeito sendo o mesmo que o uso de '-relações cujas rccpt tenham o número correspondente de relações termo simétricas Então um '-diagrama pode ter todas as combinações em suas linhas Sua composição só terá as linhas cuja linha correspondente do '-diagrama tenha composição Esta extenção de composiçao de diagramas a composição de '-diagramas torna a composição de relações semelhante à composição de relações convencionais definida em termos de n-uplas , cujo correspondente aquí é das linhas das '-relações
Uma versão mais específica de operação é quando a estrutura de argumentos é rccpt e o resultado é relação , então faz parte da operação correspondência de todos os termos do resultado com conjuntos correspondentes da rccpt estrutura de argumentos Se em vez do resultado própriamente dito resultar em extenção da estrutura de argumentos incluíndo o resultado própriamente dito a correspondência já fará parte automáticamente A composição de relações conforme diagramas , o diagrama sendo visto ou representado por uma rccpt , pode ser considerado assim
Uma '-operação será uma operação cuja estrutura de argumentos é '-relação É diferente da versão descrita acima para estruturas de argumentos rccpt (para não causar confusão , talvez composição de '-diagramas possa ser vista como '-operação , mas é algo mais específico tratado mais abaixo) Uma rccpt e a '-relação correspondente são elementos diferentes O resultado de uma '-operação (própriamente dito) é uma relação com termos correspondentes a um subconjunto das linhas da '-relação estrutura de argumentos (pode ser intuitivo imaginar esta relação como vertical) , os termos desta relação resultado sendo funções das linhas correspondentes , não dependendo da relação entre elas na estrutura de argumentos , mas a relação resultado entre eles depende desta relação , a correspondência entre termos do resultado e o subconjunto de linhas da estrutura de argumentos faz parte da operação Se a '-operação resultar em extenção de restrição vertical da estrutura de argumentos incluindo um termo correspondente ao resultado própriamente dito a correspondência faz parte automáticamente , mesmo se não estiver definido quem ocorre como termos das '-relações , portanto não havendo um resultado própriamente dito , há o conceito de '-operação , algo que age paralelamente nas linhas da estrutura de argumentos e em seu relacionamento pela rccpt corresondente Extenção de '-relação determina extenção das linhas Como '-relação corresponde a rccpt , correspondência apenas parcial de termos , em geral apenas parte das linhas da '-relação é extendida Então , uma extenção de restrição vertical corresponde a uma extenção E uma extenção determina o conjunto de linhas extendidas Então na descrição acima pode-se considerar simplesmente extenção em vez de extenção de restrição vertical Pode ser que a ação de uma '-operação em cada linha da estrutura de argumentos seja conforme uma mesma operação , neste caso a '-operação generaliza a operação Ou , uma '-operaç��o cujo tipo apropriado de '-relação estrutura de argumentos tiver tipos de papéis diferentes que as relações termo da rccpt (linhas) podem fazer , pode ser que a ação da operação em cada linha seja conforme uma operação correspondente a este tipo de papel Então esta '-operação é um relacionamento entre estas operações As idéias de operação descritas podem ser consideradas como extender a estrutura de argumentos incluindo o resultado mantendo o tipo específico de relação que é a estrutura de argumentos Pode ser que para estrutura de argumentos de certa operação uma rccpt é mais natural , mas para o uso que se faz é mais natural ver como '-relação Composição de diagramas pode ser considerada como operação cuja estrutura de argumentos é a rccpt que representa o diagrama e cujo resultado propriamente dito tem um termo por nó do diagrama Um '-diagrama também pode ser representado por uma rccpt , entre as '-relações que ocorrem no '-diagrama , esta rccpt precisa determinar a correspondência de linhas entre estas ocorrências de '-relações , estes conjuntos de linhas correspondentes são as linhas do '-diagrama A composição de '-diagramas seria uma operação que tem este tipo de rccpt como estrutura de argumentos e resulta em extenção dela preservando o tipo , ou seja as linhas da '-relação resultado própriamente dito são incluidas na correspondência , entrando em um subconjunto dos conjuntos correspondentes , as linhas do '-diagrama com correspondente no resultado da composição Permite-se que cada linha de cada '-relação que ocorre no '-diagrama esteja em vários conjuntos correspondentes de linhas , em várias linhas do '-diagrama , as linhas do '-diagrama correspondendo a combinações de escolhas de uma linha de cada ocorrência de '-relação no '-diagrana , isto sendo equivalente , em particular para a composição , ao uso de relações com termos simétricos entre sí As linhas do '-diagrama correspondentes a um subconjunto das combinações terá composição Isto é semelhante ao que ocorre com n-uplas em composição de relações convencionais conforme diagramas Imagino que a generalização de composição de diagramas para composição de '-diagramas caracteriza a composição de diagramas assim como a composição de diagramas de n-uplas caracteriza a composição de diagramas de relações convencionais Para a composição , o efeito de cada ocorrência de relação no diagrama vem da parte de sua informação compatível com o diagrama A composição de '-diagramas mostra isto ao ter resultado com linhas correspondentes a um subconjunto de linhas do '-diagrama
Quando digo que uma relação ou termo pode ser visto de alguma forma pode ser que seja mais verdade para certas relações , ou talvez seja possível encontrar uma forma ver sempre assim Uma relação pode ser vista como sendo ou construindo algo maior A situação de um termo da relação tem semelhança com a situação da relação , pode-se definir a relação que inclui a primeira relação como termo Então o termo também pode ser visto como construção Em uma relação pode-se imaginar os termos se construindo parcialmente uns à partir dos outros , de partes ou aspectos seus , construir parcialmente quer dizer construir , determinar , aspectos As relações termo de uma rcct podem ser vistas como sendo construídas parcialmente umas em relação às outras pela rcct Uma rcct pode ser vista como construíndo parcialmente umas em relação às outras as construções feitas por suas relações termo de seus termos uns em relação aos outros A relação entre um termo de uma relação termo de uma rcct e outra relação termo da rcct é semelhante à relação entre uma relação convencional e uma n-upla pertencente a ela Isto é obtido em duas etapas , primeiro a relação é vista como construíndo aspectos de seus termos uns em função dos (aspectos dos) outros termos , depois uma rcct de que esta relação é termo é vista como construíndo aspectos de suas relações termo , construções , umas em função das outras Com estas duas etapas chega-se em algo semelhante à relação entre relação convencional e n-uplas suas Eu defini rcct com assimetria entre suas duas dimensões por que quero ver relações termo de uma rcct como generalizando n-uplas de uma relação convencional E quero ver cada termo de cada relação termo de uma rcct como generalizando relação convencional , conjunto de n-uplas , ou algo construído à partir dela A relação termo de que o elemento é termo é vista como construíndo aspectos do elemento à partir de aspectos dos outros termos , uma relação é vista como um dicionário parcial que define os termos parcialmente uns em função dos outros , de aspectos , partes deles , o mesmo para o relacionamento que a rcct faz , definindo , construíndo , suas relações termo parcialmente , aspectos deles , uns em função dos outros Então a situação relativa entre um termo de uma relação termo de uma rcct e a rcct é semelhante à situação relativa entre uma relação convencional e uma n-upla pertencente a ela As outras relações termo são análogas a partes , aspectos , do termo da relação termo Não confundir com a visão de que uma relação mostra uma forma de ver seus termos como aspectos uns dos outros , as duas formas de ver estão relacionadas E se imaginamos que faz parte de uma relação idenfificações entre aspectos de seus termos , vistos aquí como rccpt de que eles são termo de relação termo , pode haver para cada relação uma mesma rccpt de que a relação é termo e cujas outras relações termo correspondem às identificações , ou tem restrições correspondentes a elas Uma analogia entre elementos envolve uma correspondência , não precisa ser entre partes , pode ser entre elementos que fazem parte de um mesmo tipo de contexto , uma rccpt pode ter a informação da analogia entre os contextos , portanto de analogias entre elementos de conjuntos correspondentes de termos , a situação relativa entre um destes termos de uma relação termo e outras relações termo é semelhante à situação relativa de uma relação convencional e uma n-upla sua , ou conjunto delas , subrelação , ou outra relação que tem intersecção com a primeira , ou não tem intersecção mas há bijeção entre subrelações , provavelmente preservando estrutura que os conjuntos de n-uplas das relações tem Se o conjunto de rcct de algum tipo de que uma relação é termo determinar de alguma forma outra relação com os mesmos elementos ocorrendo como termos e que é relação termo do mesmo conjunto de rcct isto é uma forma de contextualização em uma relação determinando outra relação Relação generaliza conjunto , então um conjunto de elementos pode determinar uma relação com uma ocorrência de cada um deles como termo
Dado um tipo de relação e um outro tipo de relação de que os termos do primeiro tipo podem independentemente ser termos , pode-se generalizar este segundo tipo para um tipo de rcct em que as relações termo são do primeiro tipo , ou seja , linhas do primeiro tipo , verticalmente generaliza o segundo tipo (mencionei esta idéia na descrição de expressão generalizada abaixo) Os termos das linhas provavelmente formarão combinações de ocorrências de mesmos conjuntos de elementos , subconjunto de algum produto carteziano , além disso o tipo de rcct ,  vertical , restringe não só estas n-uplas , mas as relações horizontais de que são termos , linhas , quais conjuntos delas podem ocorrer em uma mesma rcct deste tipo e os relacionamentos verticais permitidos entre cada conjunto de relações termo Uma relação generaliza uma aplicação de operação Cada termo faz parcialmente o papel de argumento e parcialmente o papel de resultado Expressões mais gerais envolvem subexpressões Parênteses ( . . . ( . . ) ) ( . ( . . . ) . ) ( . . . ) Na descrição abaixo , quando falar expressão significa aquilo que estou descrevendo Teria que haver um termo para cada subexpressão Mas a cada subexpressão corresponde também uma relação Como cada termo de cada subexpressão é um pouco argumento e um pouco resultado , cada um deles poderia representar a subexpressão na expressão mais externa Motivado pela idéia de distributividade pode-se supor uma relação para cada combinação de um termo de cada subexpressão , ligadas por uma rcct Como termos de subexpressões mais internas podem ser vistos como resultado , cada um deles também pode representar a subexpressão na expressão Então uma expressão seria uma rcct , cada relação termo tendo um termo de cada subexpressão mais externa , que pode ser termo de subexpressão mais interna desta Termos de uma mesma subexpressão mais externa são correspondentes pela rcct Pode-se imaginar as relações termo desta rcct agrupadas conforme termos correspondentes sejam de um mesmo conjunto de subexpressões mais internas , uma de cada subexpressão mais externa Pode-se imaginar esta rcct como rcct entre '-relações correspondentes a restrições da rcct a estes conjuntos de relações termo Em uma destas '-relações , um conjunto de subexpressões completas corresponde a termos Em particular a própria rcct que é a expressão pode ser vista como '-relação Neste caso as subexpressões maximais correspondem a termos Se relação generaliza aplicação de operação , esta '-relação generaliza isto Acho que vou considerar esta '-relação como a expressão , e não a rcct (outra definição , variação desta , mais abaixo) As subexpressões são expressões deste mesmo tipo , deveria haver uma '-relação correspondente a cada uma delas Esta informação poderia estar contida na '-relação mais externa ? A rcct pode ser imaginada como generalizando as relações que são as subexpressões Mas o relacionamento afirmado pela rcct não necessáriamente determina os relacionamentos afirmados por estas subexpressões Podería-se usar um tipo de rcct que determine Talvez é natural se a rcct generaliza as relações-subexpressão Ou pode-se considerar as subexpressões como o que ocorre como termo da '-relação A '-relação relacionando as subexpressões Uma igualdade entre expressões convencionais pode ser vista como relacionando as subexpressões Se alguns argumentos são subexpressões e outros são valores , estes últimos ocorrem como termo de todas as relações termo da rcct , se todos são valores pode-se ver a relação correspondente a esta aplicação de operação generalizada como rcct com apenas ela como termo e sem mais informação Então , permitindo linhas de '-relações serem '-relações e levando em consideração que quando quem ocorre como termos em uma '-relação está definido ela também é relação simples , uma expressão pode ser definida como relação cujos termos são ou argumentos simples ou subexpressões , que satisfazem esta mesma descrição , se há pelo menos uma subexpressão a relação é '-relação cujas linhas são relações entre combinações de um argumento de cada subexpressão maximal , sejam argumentos simples ou subexpressões , caso haja subexpressões haverá linhas da expressão que serão '-relações Então , esta definição já inclui o agrupamento de linhas mencionado
Quase sempre que se usa conjuntos há algum relacionamento relevante entre os elementos Para usar relações no lugar de conjuntos , seria preciso uma forma de comparar o papel de um termo de uma relação com o papel de um termo de outra relação Se houvesse tipos diferentes de pertinência a conjuntos também seria necessário estar claro quando duas pertinências são do mesmo tipo Em rcct há uma comparação de todos os termos envolvidos (no caso geral termos correspondentes não precisam ter papel semelhante) e a comparação é entre várias relações Para um tipo de papel que um termo pode fazer em uma relação , pode haver uma rccpt cujas relações termo são todas as relações que tem um termo com este tipo de papel , e o único conjunto correspondente de termos contém estes termos , se uma relação tiver mais de um termo com este tipo de papel ocorre como termo desta rccpt uma vez para cada um destes termos Para que conceitos possam ser usados de forma útil é preciso que coisas diferentes possam ter aspectos em comum , a forma como definí relação dificulta isto Acho que é preciso haver pontos de referência fixos Como as rccpt descritas correspondentes a tipos de papel que um termo pode fazer em uma relação Se relação é generalização de morfismo e conjuntos com estrutura podem ser considerados relações , seria possível definir composição de estruturas conforme diagramas , acho que a união de espaços topológicos com identificações entre subespaços seria um exemplo , para outros tipos de estruturas acho que resultaria em estrutura de tipo diferente , algum tipo de generalização Com a motivação da intuição de diluir as fronteiras entre os termos de relações , poderia-se definir uma categoria que pode ser imaginada assim: morfismos são entre relações (vejo relação como generalização de morfismo , mas nesta categoria são objetos) , um conjunto de termos sendo representado por uma relação com um termo para cada e sem mais informação , morfismos injetivos no conjunto de termos (não sei se é necessário) e aumentariam (não diminuiriam) a informação da relação , a restrição da relação contradomínio aos termos correspondentes da relação domínio tendo mais ou mesma informação que a relação domínio É semelhante a uma categoria de conjuntos com quantidades diferentes de estrutura , cada morfismo preservando a estrutura existente no seu domínio Morfismos podem ter aspectos cumulativos por composição , como , no caso de conjuntos , aumentar o contradomínio (função não sobrejetora) ou identificar elementos do domínio (função não injetora) , acho que aumentar a estrutura do domínio é um aspecto cumulativo independente , intuitivamente é um aspecto ortogonal à ação nos conjuntos , pode ser que o morfismo não simplesmente faça coincidir estruturas correspondentes , mas envolva alguma transformação , tradução entre estruturas , só este aspecto já corresponde à idéia do tipo de coisa que morfismo faz Uma rcct ou rccpt também pode fazer este tipo de coisa mas não tem sentido definido (domínio -> contradomínio) , é apenas de relacionamento das estruturas que as relações são e não mapeamento simples de uma em outra
0 notes
asdfgdfme · 9 years ago
Text
De revistas de divulgação científica e superficialmente de diversas fontes formei uma idéia do que acho que são estas coisas Não fiz muito esforço de verificar se está correto Descreví a visão que formei e especulei sobre algumas coisas Uso vagas noções qualitativas de alguns conceitos matemáticos Acho que a compreenção intuitiva depende da intuição destes conceitos
Onda de matéria Cada tipo de onda tem algo chamado relação de disperção , que é a relação entre frequência (temporal) (oscilações por unidade de tempo) e frequência espacial (oscilações por unidade de espaço) , que determina a velocidade de fase (velocidade de movimento dos ventres da onda) para cada frequência , velocidade de grupo (velocidade de movimento do envelope da onda , os ventres da onda podem ter movimento relativo ao envelope) para cada frequência Para a onda de uma partícula com massa a velocidade de grupo corresponde à velocidade da partícula , a velocidade de fase é proporcional à esta , a frequência é proporcional à energia e a frequência espacial é proporcional à velocidade vezes a massa (quantidade de movimento , ou momento linear) Frequência espacial zero , comprimento de onda infinito , função constante , corresponde à partícula parada Função não constante , partícula não parada Mas ondas proporcionais , com mesmas proporções entre os valores nos diferentes pontos , mesma forma , representam o mesmo estado Então , se a onda é tal que sua evolução mantém a sua forma o estado é chamado estacionário , mesmo que seja um estado que corresponde a movimento , como mencionei mais abaixo , soma de estados estacionários parecidos resulta em estados não estacionarios onde o movimento determinado pela onda corresponde a movimento do envelope da onda Uma onda é uma associação de algum tipo de valor a cada ponto , na onda de matéria o que é associado a cada ponto é um número complexo , mas não tem relação com alguma direção no espaço A onda de uma partícula em movimento uniforme pode ser imaginada ao longo da direção de movimento como uma espiral de caderno , mas as duas dimensões adicionais que forem usadas para o gráfico desta espiral são arbitráirias , pois a imagem desta função é em C que não tem de início nenhuma relação com o espaço físico Se chama pacote de onda uma onda que é soma (integral) de ondas em uma faixa de frequências espaciais que resulta em uma onda com amplitude maior em uma região , quanto maior a faixa menor esta região , menor o pacote , e vice versa Como velocidade determina comprimento de onda para ondas de matéria , velocidade definida corresponde a onda infinitamente espalhada no espaço Para "localizar" mais a partícula é necessário que sua onda seja soma de ondas numa faixa de comprimentos de onda , ou seja , faixa de velocidades , energias cinéticas Isto é o princípio da incerteza , o aumento da definição da posição implica diminuição da definição da velocidade e vice-versa , é algo que vale para ondas em geral , apenas que aqui frequência espacial corresponde à velocidade Para comprimentos de onda menores definições simultâneas melhores são possíveis , pacotes de onda podem ser muito pequenos e a onda pode se assemelhar e ter comportamento semelhante à uma partícula Se o produto da massa com a velocidade não é muito pequeno o comprimento de onda da partícula é minúsculo e pacotes de onda podem ser minúsculos Este é o caso de uma partícula Para o caso de várias partículas é útil uma analogia com probabilidades Imagíne uma distribuição de probabilidades conjunta para as posições simultâneas das partículas Agora substitua as probabilidades por valores em C Portanto , a onda de matéria agora é no espaço de configurações de posição Os quadrados dos módulos destes valores em C são mesmo (proporcionais a) probabilidades em caso de efetuar medidas Se esta função é produto de funções das posições de cada partícula , seus estados são independentes , e se além disso não houver interação entre elas podem ser tratadas independentemente através destas funções , suas ondas
Estas funções , ondas , usadas nas descrições de estados quânticos , são representações dos estados Assim como uma associação de um valor a cada uma de um conjunto de coordenadas determina um vetor , uma função com imagem em R ou C faz parte de um espaço vetorial , é o caso das funções acima Se  f  representa um estado e z em C , 0 < |z|  zf  representa o mesmo estado , se usa |z| = 1 e |f| = 1 Representação de estados quântios como vetores sobre C tem arbitráriedade de uma constante em C Uma sobreposição de um conjunto de estados corresponde a uma combinação linear de representações deles , z1f1 + ... znfn Se costuma falar de sobreposições como "estar em vários estados ao mesmo tempo" , provavelmente é porque muitas sobreposições não são estados intuitivos , como uma sobreposição de duas posições , isto dá a idéia de que existe apenas uma sobreposição de dois estados , mas na verdade o conjunto de sobreposições de dois estados pode ser indexado pelo conjunto de pontos na superfície de uma esfera , os dois estados correspondendo a pontos opostos , para sobreposição de mais que dois estados é mais complexo A sobreposição de dois estados corresponde a um bit quântico A onda que representa o estado de uma partícula corresponde aos coeficientes da sobreposição de estados de posição que resulta no estado Sobreposição de dois estados de spin em sentidos opostos de uma direção pode resultar em spin em qualquer direção e sentido , e acho que não seria natural descrever o spin para a direita como "estar ao mesmo tempo com spin para cima e para baixo"
Intuitivamente , um estado de energia definida , estacionário , contém uma evolução temporal codificada no estado fixo Fazendo sobreposição com estados semelhantes de energia próxima o resultado é um estado não mais estaconário que evolui de forma semelhante ao codificado no estado estacionário O estado obtido da sobreposição é tão mais "pontual" (concentrado em uma região menor no espaço de configurações) quando maior a faixa de energias envolvidas nesta sobreposição A onda no espaço de configurações pode ser imaginada como determinando um campo de velocidades Isto é uma idéia aproximada , situações específicas podem parecer pouco com isto Energías possíveis para a sobreposição podem ser distantes e os estados correspondentes pouco semelhantes entre sí
Seja uma onda de comprimento de onda muito curto e frentes de onda não planas (mas partes pequenas são bastante planas) , quando partes de uma mesma frente de onda que estavam separadas se cruzam não perdem sua identidade , mesmo ocupando a mesma região se percebe a forma das duas A situação é assim para estados no limite clássico , mas é no espaço de configurações , mas se considera apenas um ponto , ou pequena região , na onda , partes adjacentes , quando consideradas , já são consideradas estados de universos paralelos Como isto se passa no espaço de configurações , que tem muitas dimensões , não sei se há probabilidade significativa para partes diferentes de uma frente de onda se cruzarem , o que corresponderia a linhas do tempo diferentes , histórias diferentes , passarem por uma mesma configuração de posições (mas não de velocidades) de toda a matéria , qualquer foto tirada neste instante seria igual , isto leva à questão de , se estes universos paralelos existem , será que todas as históras possíveis existem ? representar isto ondulatóriamente em um mesmo espaço de configurações seria um problema , mas um subconjunto grande seria possível Se um sistema com estado no limite quântico interage com um sistema no limite clássico , como o restante do universo , se estados de que é sobreposição produzem diferenças macroscópicas , estas diferentes possibilidades estarão em pontos suficientemente distantes da frente de onda para que sigam em universos paralelos , no momento de interação (acho que é uma visão simplificada) o comprimento de onda diminui e partes adjacentes da frente de onda passam a ser como independentes , é como se a linha do tempo se ramificasse , isto se chama decoherencia , e o que se experimenta evoluindo em um ponto desta frente de onda e passando para um dos ramos é o que se chama de colapso da função de onda , a sobreposição inicial se transforma em um dos estados da sobreposição , com probabilidades proporcionais aos quadrados dos módulos dos coeficientes na sobreposição Isto é o que ocorre quando é efetuada uma medida segundo a interpretação de universos paralelos da física quântica , que me parece a melhor interpretação para raciocinar sobre física quântica
Partículas indistinguíveis Partículas elementares do mesmo tipo são indistinguíveis da mesma forma como quantidades iguais de energia são indistinguíveis Podem ser distinguidas pelo estado em que se apresentam , como posição espacial , etc No espaço de configurações de um sistema contendo um conjunto de partículas do mesmo tipo , troca de posições entre elas conduz ao mesmo estado , ou seja , não há partes separadas no espaço de configurações que haveriam caso fossem distingíveis A idéia de troca de posições é confusa considerando que os estados são ondas O conjunto de configurações é por onde a onda estado evolui e se espalha , em particular ao longo dos caminhos de troca de posição , se conduzem ao mesmo estado então avaliando a onda ao longo deste caminho se deve chegar no mesmo valor já neste caminho mais curto , isto afeta os comprimentos de onda possíveis ao longo destes caminhos Os estados de conjuntos de partículas indistinguíveis tem todas as características de estados de partículas distinguíveis , apenas que os valores diferentes da função estado para cofigurações que seriam diferentes correspondentes às permutações das posições das partículas coincidem , pois não há configurações diferentes correspondentes a permutações de posição Para que o tratamento da situação seja mais intuitivo e para usar uma equação de evolução de estado , a mesma que para partículas distinguíveis , se usa o espaço de configurações de partículas distinguíveis , e funções estado simétricas por troca de posições de partículas f(...,p1,...,p2,...) = f(...,p2,...,p1,...) então cada configuração é representada mais que uma vez Há dois tipos de partículas elementares , bósons e férmions Para bósons o raciocínio é o acima Para férmions , ao usar o espaço de configurações de partículas distinguíveis , a função estado precisa ser antisimétrica f(...,p1,...,p2,...) = --f(...,p2,...,p1,...) Então , no espaço de configurações real , de posições ocupadas , a função estado seria descontinua ? Pode-se supor cópias separadas de C para cada configuração e a existencia de uma identificação entre elas para cada região do espaço de configuração que não contenha caminhos de troca de posições Extrapolando esta identificação ao longo de um caminho de troca de posições se obtém uma identificação com sinal trocado a aquela existente na região envolvendo a configuração de início e fim deste caminho , ou seja , que identifica valores que na identificação local tem sinal oposto Como a equação de evolução da função estado se baseia em derivadas , identificação local é suficiente Como continuidade é um conceito local , esta identificação local também determina também um conceito de continuidade de funções estado Os espaços de configurações para bósons e para férmions são indexados pelo mesmo conjunto , o conjunto de posições ocupadas Cada conjunto de posições ocupadas corresponde a um vetor estado ortogonal , que formam uma base do conjunto vetorial de representações de estados Então estes espaços são isomorfos (o mesmo) ? São isomorfos , mas há várias escolhas possíveis de uma base consistindo de vetores paralelos a um conjunto de direções ortogonais , ainda mais se  zV , com z em C , é paralelo a  v Se o mesmo espaço vetorial for usado , uma mesma escolha de vetores representando conjuntos de posições ocupadas não será natural simultaneamente para bóson e para férmions , natural com relação à expressão da equação de evolução e da continuidade das funções estado Em cada região do espaço de configuraçoes que não permita trocas de posições de partículas o comportamento (evolução) da função estado tem a mesma forma , mas a função entre estados que mostra isto não pode ser extendida a nenhuma região que permita trocas de posição , portanto a união de duas destas funções (dos domínios) pode não ser uma delas Portanto , a diferença de comportamento de conjuntos de bósons e férmions não é local no espaço de configurações , tem relação com a forma como regiões se ligam com relação à evolução da função estado , como influências que vêm por regiões com intersecção se combinam , como influências com uma mesma origem voltam a se combinar depois de se propagar por caminhos diferentes no espaço de configurações , influências que se propagaram de forma igual se combinam de forma diferente , talvez como interferência construtiva para bósons e como interferência destrutiva para férmions , certos estados podem evoluir de forma igual por um período , mas quando certas influências se encontram a interferência é diferente Quando os comprimentos de onda são curtos pode ser possível distinguir as diferentes influências quando elas se sobrepõe , independente de como se combinam , então há uma semelhança intuitiva maior entre bósons e férmions , a diferença de comportamento entre bósons e férmions corresponde a certo tipo de interferência ondulatória que é oposta entre os dois casos , e para comprimentos de onda mais curtos há a tendencia de interferências ondulatórias terem menos efeito , para que tenham efeito é preciso que as ondas tenham uma relação mais precisa entre elas Para ondas em geral , quando uma influência surge em um ponto e segue por caminhos diferentes que voltam a se encontrar , pode haver interferência destrutiva ou construtiva , mas interferência destrutivas normalmente precisam de caminhos (pelo menos um deles) mais longos que o comprimento de onda (ou metade) , mas graças à propriedade descrita do espaço de configurações de férmions , uma configuração com um par de férmions próximos produz interferência destrutiva em toda a região do espaço de configurações contendo esta configuração , de modo que a função estado se aproxima de zero próximo a configurações contendo coincidência de posições , tanto mais rápido (espacialmente) quanto maior o comprimento de onda , ou , menor a energia Tomando um estado com comprimentos de onda bem pequenos de um conjunto de partículas distinguíveis e somando as partes correspondentes às permutações de posições obtendo um estado para bósons , provavelmente ainda se distinguirá as frentes de onda que existiam no estado original de partículas distinguíveis , em particular as correspondentes a configurações que eram diferentes por permutações de posição , para comprimentos de onda menor a diferença qualitativa diminui Então , o espaço de configurações de partículas indistinguíveis é diferente do espaço de configurações para partículas distinguíveis E se a forma de evolução for considerada como parte da estrutura do espaço de configurações , o espaço de configurações de bósons é diferente do espaço de configurações de férmions Mas , por exemplo , se dois fótons são emitidos em pontos diferentes suas ondas evoluem independentemente mesmo que se cruzem Mas cada par de pontos faz dois papeis no processo conjunto , correspondentes às duas associações de processo aos pontos , onde os processos são os correspondentes às duas origens de um fóton , são as ondas que se originam nestas origens Estas partes do processo conjunto estão sobrepostas no esp de conf Para um par qualquer a interferência ondulatória entre eles no esp de conf pode ser de qualquer tipo Mas para um par mais próximo que meio comprimento de onda a interferência será construtiva , pois as partes do processo conjunto que estão sobrepostas alí são próximas (formam uma única região conexa) e os pesos são semelhantes alí A probabilidade de um bóson estar em um estado aumenta com o número de bósons já presentes neste estado Para férmions , mesmo que as partes do processo conjunto sobrepostas na região de um par próximo sejam próximas , a interferência é destrutiva , pois o que do ponto de vista da equação de onda é função constante , extrapolado ao longo de caminhos de troca de posições resulta no que do ponto de vista da mesma equação é sinal oposto , isso não causa problema , pois a equação age localmente Entao , para férmions a probabilidade de uma configuração de posições diminui com a distancia entre eles , tão mais rápido quanto maior o comprimento de onda , ou equivalentemente , menor a energia , e a probabilidade de coincidencia de estados é zero
Correlação quântica Quando a função de onda de um sistema constituído de vários subsistemas é produto de funções destes sistemas , os estados são independentes Caso contrário existe correlação quântica Não sei se o que se costuma chamar de correlação quântica é apenas algum tipo de correlação mais específico Para que haja interferência ondulatória perfeita em um sistema , seu estado precisa ser independente de outros sistemas Se partes do estado de um sistema que se sobreporiam correspondem a estados diferentes de outro sistema , quanto mais ortogonais estes estados diferentes , menor a interferência No esp de conf de um sistema em estado independente do estado do resto do universo sempre há interferência ondulatória Quando se tem apenas uma distribuição de probabilidade para o estado quântico de um sistema isto determina para o sistema algo chamado de estado misto , que tem menos informação que a distribuição de probabilidade (não a determina) e mais informação que um estado normal , puro (mais informação é necessária para representar o estdo) do sistema , os estados mistos formam um conjunto maior que os estados puros e os estados puros correspondem a um subconjunto Um estado misto corresponde a uma função do segundo grau no conjunto de (representações vetoriais de) estados puros cujas imagens são proporcionais às probabilidades do estado depois de uma medida Quando há correlação quântica entre o sistema de interesse e outro sistema , isto também determina um estado misto para o sistema Assim como estados puros , estados mistos são usados para fazer previsões de resultados de medidas , acho que em estados mistos as probabilidades são mais iguais do que em estados puros Também há regra de evolução temporal Se há estados intrínsicamente mistos , independentemente de correlação com outro sistema , não sei
No esp de conf de um conjunto de partículas , a freq esp correspondente ao ponto médio é a soma das freq esp das partículas desde que a distância entre configurações de partículas coincidindo seja considerada a distancia entre os pontos de coincidência , o que não é o caso , mas multiplíca-se por uma constante Isto tem relação com a freq esp de partículas com massa ser proporcional , além da velocidade , também à massa da partícula
Um vetor estado (que é uma representação de um estado) se chama normalizado se sua norma é um , |v| = 1 , ou |f| = 1 para ressaltar que o vetor é uma função
Uma forma de representar o estado de um sistema composto de dois subsistemas é uma função que associa a cada elemento de uma base do conjunto de estados do primeiro , por exemplo , a cada configuração , um vetor estado não normalizado do segundo (aquí , em particular , v será diferente de zv mesmo se |z| = 1) Estes vetores estado tomam o lugar dos valores em C A probabilidade de um estado desta base do primeiro sistema será o quadrado do módulo do estado do segundo sistema que esta função estado associa a ele Esta forma de representar pode explicitar uma correlação
Parece que o conceito de correlação quântica supõe que o estado do sistema conjunto constituído dos sistemas correlacionados é independente de outros sistemas Mas , mesmo que não seja independente , o estado geral pode favorecer certa correlação entre estados , ou seja , a função estado mais geral descrita logo acima pode associar vetores estado de módulo maior do terceiro sistema a estados com algum tipo de correlação dos dois prmeiros sistemas (sistema conjunto deles) Isto se chama "quantum discord" Na verdade , acho que o que se chama "quantum discord" é certa medida quantitativa disto
Fônon e fóton Fóton seria a partícula de ondas eletromagnéticas e fônon a partícula de ondas mecânicas É estranho haver partículas de ondas mecânicas , as partículas já não estão todas alí no material que transmite as ondas ? Estas partículas são meios de descrever estados Se o meio transmissor é ideal os fônons são muito similares aos fótons Os fótons também podem ser considerados como meio de descrever estados do campo elétro-magnético Visto assim , partícula ou onda ? acho que onda é mais apropriado Mas tanto fônons como fótons podem ser absorvidos pontualmente , o que é característico de partícula Isto tem relação com colapso da função de onda , decoerência Isto é resultado da aplicação das leis da mecãncia quântica à propagação de ondas Parece que em teoria quântica dos campos , outras partículas também podem ser vistas como meio de descrever algum campo
As energias possíveis para um oscilador harmônico formam um conjunto discreto Para cada frequência , a distância entre energias consecutivas é fixa , independente de qual energia o oscilador já tenha , só esta mesma quantidade fixa , que depende da frequência , pode ser adicionada ou subtraída E a menor energia possível para um oscilador é a metade desta energía (se me lembro bem) Fônon corresponde à quantidade de energia que pode ser acrescentada em um oscilador harmônico com a frequência do fônon , esta quantidade é a mesma independente da energia que o oscilador já tem Quando se fala em fônon se supõe que o oscilador é um modo de vibração de um meio transmissor de ondas Uma sobreposição de acréscimo de energia em vários osciladores de mesma frequência é o mesmo que o acréscimo em algum modo de vibração cojunto dos osciladores Se estes osciladores de mesma frequência são modos de vibração de um meio transmissor de ondas esta vibração conjunta também é vibração de um modo de vibração definível através dos primeiros Notar que mesmo os pesos complexos envolvidos na sobreposição terem certa relação com probabilidades , a sobreposição sendo informalmente descrita como "estando em vários estados ao mesmo tempo" , a sobreposição neste caso pode definir modos de vibração uns em termos de outros A situação de sobreposição de energia de um fônon em osciladores de frequência diferente é muito semelhante , mas a energia do fônon aumenta com a frequência , portanto a sobreposição é de estados com energia diferente Vibração simultânea de osciladores clássicos produz batimento entre as frequências Estados quânticos de energia definida são estacionários Para que haja mudança com o tempo o estado precisa ser sobreposição contendo energias diferentes Se um fônon está numa sobreposição de osciladores de frequências diferentes o estado evolui cíclicamente na frequência de batimento entre as frequências Se os osciladores são modos de vibração de frequências diferentes de um meio , a vibração combinada apresenta batimentos , a forma da vibração varia com a frequência do batimento Soma de vibrações clássicas em um meio com frequências em uma faixa podem produzir uma onda cujo envelope se propaga Dependendo da relação entre frequência temporal e frequência espacial , a velocidade de propagação deste envelope (velocidade de grupo) é diferente da velocidade de propagação dos ventres (velocidade de fase) de uma onda de frequência definida média nesta faixa No caso de fótons e dos fônons que imagino , as velocidades são iguais , para ondas de matéria , partículas com massa , são diferentes e proporcionais (para velocidades não relativísticas , caso contrário não sei) O estado de um fônon sobreposição de uma faixa de frequências tem semelhança com um estado clássico correspondente onde as frequências envolvidas são as mesmas e os pesos em C na sobreposição fazem o papel de fasores das vibrações de cada frequência Vibrações com número definido de fônons de mesma frequência não tem fase clássica de vibração definida Mas em sobreposições os coeficientes em C tem um papel com certa semelhança com o papel de fasores No caso de sobreposições de estados de exatamente um fônon ou fóton o papel é semelhante ao papel de fasores das vibrações locais da onda Um fônon não tem fase clássica definida , mas sobreposições de estados de um fônon determina algo semelhante a fase relativa entre estes estados , no caso , de vibração Um modo de vibração pode ser descrito como sobreposição de estados pontuais de fônon (parece que não realmente , mas algo próximo a isso) , ou bastante localizados que resulta em um fônon neste modo de vibração , os coeficientes em C nesta sobreposição tem interpretação como determinando as amplitudes e fases relativas de oscilação entre os pontos diferentes neste modo de vibração Estou supondo um meio transmissor ideal Estados de um fônon podem ser descritos por uma onda que é associação de elementos de C aos pontos do meio transmissor Uma sobreposição de estados de um fônon cujo correspondente clássico determinaria um pacote de onda determina algo semelhante , fases em cada ponto não definidas , mas (algo similar a) fases relativas entre os pontos definidas , e (algo como) amplitudes locais definidas , portando uma forma de envelope definida Representação de estados quântios em geral como vetores sobre C tem arbitráriedade de uma constante em C , v e zv representam o mesmo estado  , se usa |v| = 1 , pois facilita calcular probabilidades , mas para raciocínios mais qualitativos pode não ser necessário As fases em cada ponto da onda representação de um fônon não estarem definidas mas as fases relativas estarem é caso particular disto Não sei se o estado de um fóton pode ser representado por uma onda com imagem em C Esta representação de estados de um fóton não teria informação relacionada a campos elétrico e magético Um estado que tenha vetores elétrico e magnético mais ou menos definidos é sobreposição de muitas possibilidades de distribuição de números de fótons aos modos de vibração , contendo possibilidades com números diferentes totais de fótons Isto é mais do que uma sobreposição de estados de um fóton No caso particular de simplesmente sobreposições de estados em geral , informação não existente (pelo menos aparentemente) nos estados sobrepostos pode ser "criada" pela sobreposição específica deles , como a sobreposião de spins opostos em mesma direção que pode resultar , entre outros estados , em todas as direções e sentidos perpendiculares a esta , isto mostra que sobreposição é algo mais físico do que simplesmente associação de pesos em C aos estados sobrepostos , esta associação é apenas uma representação matemática disto A situação acima é mais que uma sobreposição , mas algo semelhante se aplica , a representação ou obtenção de um estado do campo eletro-magnético através de fótons "cria" os vetores campo elétrico e magnético (dependendo do estado , talvez apenas vagamente definidos) A onda representando o estado de um fônon corresponde à representação de fônon na base de posiçãos Existe também a representação do estado do meio transmissor , ou campo eletromagnético no cado de fóton , na base de configurações deste meio , mas nesta base são representáveis não apenas estados de um fônon , mas qualquer estado do meio Mas , de qualquer forma , pode ser útil ter uma idéia de como é a associação de pesos em C a configurações do meio para estados de um ou poucos fótons Provavelmente o peso de configurações com semelhança ondulatória com o estado será maior A variação do peso com a amplitude da configuração provavelmente será semelhante à variação no caso do primeiro estado excitado do oscilador , função ímpar que se aproxima de zero para valores grandes dos dois lados O fônon está somado ao estado fundamental do meio , que envolve muitas frequências , isto determina pesos para outras configurações também Parece que deve ser mais fácil encontrar a descrição de estados com comprimento de onda mais definido e mais espalhados no espaço Como são os pesos para configurações em estados mais localizados (pontuais) de fônon ? Provavelmente também , configurações com relações entre amplitudes e fases locais semelhantes à da onda que descreve o estado de fônon terão peso maior (fases relativas em uma configuração do meio provavelmente correspondem a números reais apenas , ou aos sinais positivo e negativo , pois uma configuração é estática)
Pode-se representar um estado de partículas através de operadores de criação de partículas Um operador de criação de partícula é uma função linear no espaço de (representações de) estados que acrescenta certo tipo de partícula em certo estado Um estado de uma partícula pode ser representado pelo operador que a acrescenta neste estado Um estado com partículas em estados independentes pode ser representado pela composição dos operadores que as acrescentam nos respectivos estados Sobreposições se representa pela combinação linear correspondente dos operadores correspondentes Então qualquer estado , não apenas com partículas em estados independentes pode ser representado Operadores para bósons comutam  AB = BA , a ordem de acréscimo é indiferente Operadores para acrescimo de um férmion anticomutam  AB = - BA , e  AA = O (vetor nulo)
Agupando um número de férmions em pares ou números pares , os sistemas compostos , os caminhos de troca de estados no espaço de configurações tem o efeito que tem para bósons , pois são combinação de duas trocas de sinal Estados consistindo de par de estados de férmion ocupados independentemente não podem ser ocupados por mais de um par de férmions , mesmo que um par tenha comportamento bosonico , ABAB = -AABB = -OO = O Mas estes são um subconjunto pequeno dos estados possíveis de par de férmions , estados com alguma correlação podem ser ocupados mais de uma vez Seja por exemplo (omití as constantes em C da sobreposição , acho que não altera o raciocínio) A1B1 + A2B2 , a correlação é de  A1 associado a B1  e  A2 associado a B2 , (A1B1 + A2B2)(A1B1 + A2B2) = A1B1A1B1 + A1B1A2B2 + A2B2A1B1 + A2B2A2B2 = -A1A1B1B1 + A1B1A2B2 + A2B2A1B1 - A2A2B2B2 = 2 A1B1A2B2 Por outro lado cada parcela de (A1B1 + A2B2)(A1B1 + A2B2)(A1B1 + A2B2) terá fatores repetidos e será zero , mas (A1B1 + A2B2 + A3B3)(A1B1 + A2B2 + A3B3)(A1B1 + A2B2 + A3B3) =  6 A1B1A2B2A3B3 e não precisa resultar zero Então , parece que para o comportamento bosonico é preciso uma correlação forte Mas , se os fatores de  A1B1A2B2A3B3  forem todos combinações lineares de C e D então este produto também resultará zero pois todas as parcelas terão fotores repetidos A1 , B1 , A2 , B2 , A3 , B3  precisam formar um conjunto linearmente independente Acho que já de início para que  A1B1 + A2B2 + A3B3  represente uma correlação ou  A1 , A2 , A3  precisam formar um conjunto linearmente independente ou  B1 , B2 , B3 O estado  A1B1A2B2A3B3  pode ser descrito como um férmion em  A1 , ... , e um em  B3 , mesmo que não sejam estados ortogonais , mas precisam ser linearmente independentes Então , cada conjunto de n férmions ocupa um subespaço de dimensão n , seus estados estão nele , mesmo que não sejam ortogonais , estes subespaços também não precisam ser ortogonais Mas o estado também tem representações como sobreposição de distribuições deste número de férmions a estados ortogonais A1 , A2 , A3  podem ser bastante paralelos , mas precisam ser linearmente independentes , o mesmo para B1 , B2 , B3 , mas não sei se os pares com suficiente correlação terem comportamento bosonico cria a tendencia de que isto ocorra , o que ocorre é que se há um par de férmions em estados suficientemente correlacionados há uma tendência aumentada para haver mais pares neste mesmo estado , assim como ocorre para bósons individuais Se há alguma interação entre férmions que passam próximos , mesmo que se movendo em sentidos opostos , isto cria correlação , e forma um par com comportamento bosônico Em vez de pares pode ser conjunto com número par de férmions Isto é usado para explicar comportamentos , como superfluidez e supercondutividade , que já tinham uma explicação quando as partículas envolvidas são bósons
O potencial que impede moléculas de um líquido de ocuparem mesma posição espacial e de se aproximarem acima de certo limite , no espaço de configurações de posições (e orientação espacial , acho que não afeta os raciocínios) das moléculas corresponde a uma rede de caminhos estreitos em que a função potencial é mais baixa , no restante das configurações o potencial é muito elevado Para energias baixas o suficiente o comprimento de onda é maior que esta estrutura e a onda no esp conf difrata , tem comportamento semelhante a de um potencial constante , caso em que cada partícula enxerga independentemente um potencial constante , e acho que este é diferente deste potencial no exterior do volume ocupado pelo líquido , o que faz com que as moléculas não abandonem a massa de líquido Acho que , se para comprimentos de onda grandes , energías suficientemente baixas , as moléculas enxergam um potencial constante (parece que é referido como "potencial médio") , podem estar em estados qualitativamente independentes , suas ondas difratam entre as outras moléculas Para cada movimento suave de uma molécula dentro do líquido , há movimentos correspondentes no espaço de configurações com certo zigue-zague correspondente a permanecer nas regiões de potencial baixo , a situação descrita é quando o comprimento de onda é grande em comparação com este zigue-zague O atrito e turbulência em líquidos envolve situações , como variações bruscas de velocidade , que envolvem comprimentos de onda curtos , energias maiores Se a maioria das moléculas de um líquido tem comprimento de onda grande o suficiente o atrito e turbulência serão insignificantes Prótons , neutrons e elétrons são férmions , se uma molécula tiver um número par de partículas é bóson , essas partículas acompanham o movimento da molécula , se movem juntas , correlação Certos líquidos constituídos de bósons , abaixo de certa temperatura (acho que também depende da pressão , campo magnético , etc) , se tornam superfluídos , desaparece a resistência ao fluxo e a viscosidade , um movimento pode se manter indefinidamente As moléculas ocupam (acho que na prática é uma fração delas) um mesmo estado quântico de baixa energia , grande comprimento de onda , o que é uma tendência para bósons Não é realmente o mesmo estado , é este estado difratando no conjunto de moléculas , com descrito acima Não sei se é apenas o fato de estarem todas (//) em baixa energia ou o estado ser o mesmo também tem um papel A tendência de bósons ocuparem um mesmo estado faz com que todas (//) as moléculas tenham energia baixa o suficiente , talvez caso contrário haveria uma distribuição de velocidades , grande parte delas grande demais Isto também ocorre em alguns líquidos cujas moléculas são férmions (constituídas de um número ímpar de partículas) A explicação é que se formam pares (ou conjuntos maiores com número par) de moléculas com comportamento bosônico , e estes pares ocupam um mesmo estado de par de partículas de baixa energia No caso da supercondutividade , se formam pares de elétrons de condução Parece que estes pares de elétrons costumam ser constituídos de elétrons em movimento de sentidos opostos Mesmo os pares envolvendo movimentos opostos , a função estado no espaço de configurações determinará pesos constantes para a presença de pares , para cada configuração de pares que pode ocorrer neste volume , cada forma em que este número de pares pode se apresentar neste volume , a função estado determina como que uma evolução à partir de cada configuração Então , mesmo que movimento oposto determina a dissolução dos pares não há momentos definidos em que se formem ou se dissolvam Moléculas iguais também não tem identidade Se uma toma o lugar de outra em um par é um retorno ao mesmo estado Também se diz que contínuamente surgem e desaparecem partíuclas no vácuo quântico , e na verdade há pesos constantes para cada configuração de presenças de partículas (dependendo da situação , estes pesos podem evoluir) Estados quânticos estacionários , ou zf em que apenas z varia , podem como que determinar um tipo de processo em que vários tipos de eventos ocorrem sem determinar um exemplo específico , isto não é uma descrição precisa Então , a palavra "contínuamente" em “contínuamente surgem e desaparecem” talvez seja bem apropriada
Parece que uma situação semelhante à situação no esp de conf de férmions , de identificação apenas local entre valores da função estado , é semelhante a uma situação que ocorre em um fenômeno chamado "fase geométrica" , em que parece que ocorre para partículas individuais , por exemplo , fótons em fibra óptica curva
Ouve-se de vez em quando que não existe medida de posição Talvez existam estados indexados pelas posições espaciais , que não são ortogonais entre sí , para pontos muito próximos (não sei qual seria esta distância) são bastante paralelos e acima de certa distância são bastante ortogonais Acho que é situação semelhante para estados de fóton se irradiando à partir de um ponto , para pontos próximos em comparação ao comprimento de onda os estados correspondentes começam a ser bastante paralelos , acima de certa distância são muito ortogonais Acho que nos dois casos , um conjunto de pontos diferentes determina estados linearmente independentes , mas para pontos suficientemente próximos estes estados são bastante paralelos Qualitativamente é semelhante a haver estados ortogonais correspondentes a certo espaçamento , mas os pontos exatos não estão definidos É como se as fronteiras entre coordenadas diferentes em um espaço vetorial com conjunto discreto de coordenadas estivessem diluídas Como estados correspondentes a pontos muito próximos tem aspecto muito semelhante , acho que uma combinação linear deles que "mostre" a independencia linear resultará em algo mirabolante , que tem pouca probabilidade de ocorrer na prática Se qualquer conjunto de pontos densamente agrupados corresponde a um conjunto linearmente independente , os vetores de uma base não podem corresponder todos a pontos
Lí em alguns lugares sobre "interferência de segunda ordem" Interferência convencional , de primeira ordem , corresponde a franjas de interferência no espaço físico , que geralmente imaginamos como a intersecção delas com uma superfície plana Interferência de segunda ordem corresponde de franjas de interferênica no espaço de configurações de posições de dois fótons , que imaginamos como no espaço de configurações das posições em uma superfície plana , que corresponde a um subconjunto do esp de conf total A idéia é fazer a experiência com dois fótons de cada vez , mas acho que há outras formas , como se a probabilidade maior é chegarem até o detector apenas dois fótons (o peso para isto tem módulo maior) Para dois fótons irradiando à partir de dois pontos independentemente , estados independentes , plotando a distancia das detecções no sentido da posição relativa das duas origens obtém-se franjas do mesmo tipo que franjas convencionais para um único fóton Para sobreposição com pesos de módulo igual dos dois estados de os dois fótons saíndo em uma mesma fenda , plotando os pontos médios obtém-se franjas com o dobro de frequência espacial que a destes fótons
Sejam  A e B  os operadores de acréscimo de fóton nos estados irradiando à partir de cada um dos dois pontos Como descreví mais acima , estes estados podem ser considerados ortogonais Seja  s em C , |s| = 1 , então
(A + sB) e (A - sB)
criam fótons em estados ortogonais , (1,s) e (1,-s) são ortogonais A e B  já determinam uma fase relativa nos dois pontos de origem
Variando  s , A e sB  percorrem todas as fases relativas entre eles como |s| = 1 , com as mesmas amplitudes , o mesmo para  A e -sB
Para um fóton , a fase relativa determina a posição das franjas de interferência
Os estados com dois fótons envolvendo os estados  A e B  são os estados de dois fótons envolvendo  (A + sB) e (A - sB) , pois geram o mesmo espaço de estados
O estado geral com dois fótons envolvendo  (A + sB) e (A - sB)  é
x(A + sB)² + y(A + sB)(A - sB) + z(A - sB)²    ,  x , y , z em C
se  y = 0  e  z = -x  não tem termos  AA  e  BB  e é proporcional à  AB
então , AB  é o mesmo estado que  (A + sB)² - (A - sB)² (lembrar da constante arbitrária nos vetores estado)
Então , dois fótons irradiando independentemente à partir de dois pontos , o que estou representando por  AB , é o mesmo que a sobreposição (A + sB)² - (A - sB)² dos dois estados  (A + sB)² , (A - sB)² com os dois fótons irradiando em uma destas relações de fase entre as duas origens
Acho que a detecção de um dos dois fótons em posição mais compatível com certo valor de  s , ou seja , que faz com que  A + sB  tenha franjas com um ventre na posição de detecção deixa o fóton restante no mesmo estado  A + sB Talvez a relação entre as posições detectadas possa ser explicada assim
se  x = z  então
x(A + sB)² + y(A + sB)(A - sB) + z(A - sB)²
não tem termo  AB  e é proporcional à  (2 + y) AA  +  (2 - y)ss BB
se  y = 0  isto é o mesmo que  AA + sBB , pois  ss  percorre os mesmos valores que  s
se  y  tende ao infinito , AA - sBB , mas  -s  perorre os mesmos valores que  s
para valor intermediário de  y , a sobreposição de  AA e BB será com amplitudes diferentes
Então estes dois casos são da forma  AA + sBB
Então , uma sobreposição  AA + ssBB  dos dois estados com os dois fótons irradiando à partir de um mesmo dos dois pontos é o mesmo estado que a sobreposição
(A + sB)² + (A - sB)² ou que o estado (A + sB)(A - sB)
Mas  AA + ssBB  já contém  s  e determina o  s  nestes estados
Neste caso não sei a explicação das probabilidades que ocorrem
Como descreví , um contínuo de origens pontuais de irradiação de fóton é qualitativamente semelhante a um conjunto discreto mais ou menos uniformemente distribuído com distância apropriada , proporcional ao comprimento de onda
Fenda única também gera franjas de interferência
Parece que interferência de segunda ordem é usada para medir diâmetros angulares de estrelas distantes Com dois fótons independentes com origem na estrela , a posição de detecção do primeiro determina um estado para o segundo que determina franjas de interferência cuja configuração é função da posição de detecção do primeiro , e também do diâmetro angular da estrela , assim como as franjas obtidas de uma fenda única dependem do tamanho dela , acho que é como se a posição de detecção do primeiro fóton determinasse uma direção em que um laser atinge uma fena única e passa por ela
Como a posição de detecção de um fóton pode influenciar o estado do fóton restante ?
É por que , mesmo se houveram duas origens separadas para os dois fótons , como eles não tem identidade , os fótons detectados geralmente não são um ou outro destes , mas é como se fossem feitos de partes dos fótons emitidos , são combinações deles , que dependem de como os estados em que são detectados se relacionam com os estados emitidos Isso é compatível com ver a luz como partículas ?
Para n fótons em mesmo estado , associando a cada ponto do espaço físico o peso para que estejam todos neste ponto , obtém-se uma onda com 1/n do comprimento de onda do que um fóton individual neste estado , mas no espaço de configurações de posições a função estado está espalhada por outras configurações com eles não coincidindo , se os pesos para estas configurações fossem removidos (feitos zero) ocorreria o mesmo que ocorreria para um feixe de laser do qual restasse apenas uma faixa estreita (como se uma fibra óptica que transmite uma onda deixasse de existir) , se espalharia rápidamente aumentando novamente sua largura e reduzindo a amplitude na faixa estreita original (e em todas as outras) quase a zero , ou seja , a manutenção das propriedades da função estado no subconjunto do esp de conf correspondente aos fótons coincidindo depende do restante da função estado , nas outras configurações Mas fazendo detecções em que apenas n fótons com posições coincidindo são detectados aparecerá o comprimento de onda 1/n Parece que se procura materiais sensíveis apenas a presença simultânea de mais que um fóton para gravar padrões menores usando radiação de mesmo comprimento de onda , por exemplo em componentes eletrônicos
Algo relacionado com isto , para n partículas iguais os pesos para a posição do ponto médio formam uma onda com metade do comprimento de onda que para uma partícula na mesma velocidade Mas as posições relativas entre as partículas são outros graus de liberdade e geralmente há correlação entre a posição do ponto médio e estes outros graus de liberdade Isto tem relação com a frequência espacial ser proporcional , além da velocidade , também à massa da partícula
Estava imaginando se há estados de n fônons ou fótons que possam ser apropriadamente representados por ondas no espaço físico Estaria implícito que o estado representado faria parte de um subconjunto de estados
Um par de modos de vibração correspondentes a ondas estacionárias , combinação das quais se pode obter movimento de fase em dois sentidos , vistos como osciladores harmônicos com estado conjunto representado como função em C com domínio em um plano , cada uma das duas coordenadas correspondendo à amplitude de uma das duas configurações estacionárias , esta mesma representação também pode representar uma mola (apropriada) em duas dimensões com um peso na ponta presa na origem Neste sistema da mola , acho que movimento de rotação e radial são independentes Imaginando os estados como estados de rotação e vibração independentes , produtos de uma função ondulatória angular e uma função ondulatória radial (esta alterada pela função potencial) , e o correspondente disto no sistema original , e considerando sobreposições para comprimentos de onda diferentes , parece que há subconjuntos de estados com as seguíntes propriedades: Podem ser representados por uma onda no espaço físico com imagem em C Se a onda representante é uniforme no espaço , comprimento de onda definido , então , na representação como função estado com domínio no espaço de configurações do meio transmissor , as configurações mais favorecidas tem  n  vezes o comprimento de onda da função representante do estado Esta função estado também depende independentemente da amplitude da configuração , em função da qual oscila  m  vezes n + m  tem relação com o número de fônons ou fótons Sobreposições de estados com ondas representantes em uma faixa de comprimentos de onda pode ser representados pelo pacote de onda resultante , as configurações mais favorecidas por este estado tem envelope semelhante ao da onda representante e n vezes o comprimento de onda Acho que o peso de uma configuração é soma de contribuições locais que dependem da relação entre a função representante e a configuração e suas derivadas no local , portanto o que a função representante representa seria realmente uma propriedade local do estado
A noção convencional de estados independentes em duas regiões de um meio transmissor de ondas é a função estado no esp de conf depender das duas regiões como produto de funções delas Mas em estados de um fônon , a onda (convencional) evolui independentemente em todas as regiões e acho que o peso de uma configuração é soma de contribuições locais Pode haver uma noção mais geral de estado com propriedades locais , quando o peso de uma configuração é função comutativa e associativa de contribuições locais ? Um fônon é estado microscópico , vale a soma Em estados macroscópicos acho que vale o produto Há algo intermediário ?
0 notes
asdfgdfme · 9 years ago
Text
Usei a palavra diagrama , talvez deveria ser outra Penso sem procurar exemplos Formas de ver coisas podem ser úteis
Um diagrama seria uma representação de algo (ou apenas uma estrutura abstrata) Contém subdiagramas a não ser que seja algo como um diagrama elementar Um diagrama pode ocorrer como subdiagrama várias vezes em um mesmo diagrama Uma ampliação de um diagrama é determinada por uma forma em que ele ocorre como subdiagrama de outro diagrama É útil considerar coisas diferentes uma ampliação de diagrama e o diagrama resultante , mas usar a mesma palavra Como um mesmo diagrama pode ocorrer como subdiagrama de outro mesmo diagrama de várias formas (posições) , ampliações diferentes de um mesmo diagrama podem resultar em um mesmo diagrama
Vejo diagramas como mapas parciais da realidade , então considero subdiagramas de diagramas verdadeiros como verdadeiros
Uso muito a palavra "ocorrência" , ocorrências de um elemento são diferentes dele e entre sí , apenas está definido que são ocorências dele , como ocorrências de um símbolo É sempre ocorrência de um elemento em algo , esta ocorrência correspondendo a uma subestrutura , imaginado como uma subestrutura com a forma daquilo de que é ocorrência Se é ocorrência de algo abstrato talvez poderia chamar de "manifestação" , por exemplo uma manifestação do número dois ou uma manifestação do número dez em um cacho com dez bananas Provavelmente ocorrências poderão se ligar das mesmas formas que as coisas de que são ocorrência podem ou estão ligadas
Então , há um conjunto de elementos primitivos usados para construir diagramas
Algo mais específico que usarei aquí é que alguns deles representam algum tipo de situação que pode ocorrer em diagramas (como as manifestações mencionadas acima) , além de representar sua própria ocorrência em uma parte implícita , provavelmente não representada , da representação do diagrama , quando a situação ocorre há uma ocorrência , representada ou não , do elemento no diagrama
Acho que a maioria dos tipos de diagramas tem nós , que são pontos de ligação no diagrama Os nós não tem estrutura , mas sua situação no diagrama , como estão relacionados nele , pode ser considerada como estrutura deles , assim como a situação de algo com alguma estrutura que ocorre em um diagrama pode ser considerada estrutura adicional da ocorrência
O que são os elementos primitivos fica em aberto Formas de ligação também são coisas primitivas que ocorrem nos diagramas Papéis que elementos ou nós , se houver , ligados fazem em um tipo de ligação também ocorrem em diagramas As coisas que mencionei mais acima que ocorrem implícitamente em diagramas são mais gerais
Vou descrever uma idéia de lógica ou forma de ver a lógica
Quando falar em subdiagrama abaixo pode ser em parte ou totalmente da parte implícita , não representada , do outro diagrama
Quando um diagrama é quantificado (Vd ... ou Ed ...) , percorre as formas como pode ser subdiagrama , ou seja , suas ampliações Então , partes de  d  que representam situações que podem ocorrer em diagramas percorrem estas situações (não vou usar as notações Vd ... e Ed ...)
Assim como a parte representada de um diagrama pode implicar uma parte implícita adicional , uma representação que use elementos primitivos que representem situações em diagramas implica a existencia de uma parte em que ocorre a situação , mas provavelmente esta parte fica menos determinada do que ela determina a representação desta situação , e , mais geralmente , poderia haver certa simetria entre pares de conjuntos de elementos primitivos tal que subdiagramas envolvendo um deles implicam subdiagramas envolvendo o outro , vendo as coisas assim os elementos representando situações parecem menos especiais
Há um diagrama inicial , pode ser vazio , mas o conceito é importante
O diagrama inicial é verdadeiro
É algo semelhante a um conjunto de constantes e suas propriedades
Todos os diagramas (aquí) contém exatamente uma ocorrência do diagrama inicial (talvez como parte disjunta) que pode ser vista como sendo a mesma ocorrência em todos os diagramas , estando na intersecção (que não está definida) entre eles O diagrama inicial não precisa fazer parte da representação de um diagrama Mas pode ser necessário que parte dele faça parte da representação para representar ligações do diagrama com o diagrama inicial Caso contrário a parte representada do diagrama pode ser vista como disjunta do diagrama inicial (mas contida no diagrama que é representado)
Abaixo , uso os símbolos "^" e "--->" com significado um pouco diferente do convencional e defino algo denotado por justaposição
Se coisas como  P(_,...,_)  são diagramas elementares variáveis podem ser usadas para representar a ligação das ocorrências formando diagramas , cada variável corresponde a um nó do diagrama resultante
Outra possibilidade de diagramas é um diagrama ser um conjunto de conjuntos de ocorrências de elementos de certo conjunto , é interessante a possibilidade de usar contextualização para tornar os significados das ocorrências mais específicos em cada conjunto , de qualquer forma , ampliando um diagrama os significados de suas partes normalmente se tornam mais específicos Este tipo de diagrama elimina o papel especial exercido pelos nós Supõe que certos conjuntos compatíveis de elementos "sabem" como se ligar entre sí
Outra possibilidade de tipo de diagrama é matriz parcial (quadrada) de ocorrências de elementos de certo conjunto , permutações de linhas ou colunas não alterando o significado p1,...,pn  podem corresponder aos slots de  P(_,...,_) Colunas podem ser os nós do diagrama , podem ser imaginados como variáveis
O tipo de diagrama que imagino é o primeiro acima , feito de ocorrências de diagramas elementares  P(_,...,_)
a1^...^an  resulta em um diagrama com uma ocorrência (e talvez outras acidentais) de cada  ai , estas ocorrências "cobrem" todo o diagrama a1^...^an , a maneira como  a1,...,an  estão ligados , ou seja , como são subdiagramas de a1^...^an , é representada ou determinada de alguma forma , provavelmente por ocorrências de variáveis em comum em  a1,...,an
O que é ou não diagrama inicial influencia as quantificações porque quando um diagrama é quantificado , este subdiagrama dele percorre apenas ele mesmo , pois é como se ele próprio , e não ocorrências dele , fosse subdiagrama comum a todos os diagramas
Como suponho que subdiagramas de diagramas verdadeiros são verdadeiros , se algo é representado como diagrama , situações onde a retirada de algo tornaria o significado falso precisam ser representadas tal que seja detectável a falta deste tipo de partes , de modo que mesmo sem elas signifique algo verdadeiro
Vejo tudo nos diagramas como quantificado existencialemnte , e a quantificação existencial aquí resultará neste mesmo significado , não algo sutilmente diferente
Aquí , quando se quantifica existencialmente ou universalmente um diagrama ele passa a ser como parte do diagrama inicial para seu escopo
Um diagrama pode não ter informação , quando quantificado pode apenas apresentar um conjunto de nós , provavelmente representados como variáveis , mas aquí é permitido que diagramas quaisquer sejam quantificados Da forma como definio as coisas , se um diagrama quantificado é apenas o diagrama inicial (provavelmente representado por um subdiagrama dele) a quantificação não tem efeito , seria como quantificar constantes
Denotarei quantificação exitencial por justaposição ab  significa "existe  a  tal que  b" ou seja , significa que existe o que é representado em  a  e  o que a representação  b  significa considerando  a  como parte do diagrama inicial Isto é semelhante a um  a^b , mas em  a^b  a  não é visto como parte do diagrama inicial em  b
Já que em  a--->b  (abaixo) a quantificação universal não é explícitamente representada , usei a notação  ab  para quantificação existencial , e também pelo tipo de significado existencial aquí , seu efeito pode ser viso como apenas de restringir quantificações dentro de  b , o que está quantificado mais externamente não é quantificado mais internamente , caso faça parte de diagramas quantificados mais internamente esta parte alí é fixa
Causa uma certa confusão o significado de uma subfórmula que supõe um diagrama inicial maior Os efeitos são: .a subfórmula supor isto a mais como verdadeiro , tanto em  ab  como em  a--->b , mas em  ab  a  também é afirmado , enquanto em  a--->b  a  é hipótese fora de  b , estas duas possibilidades tem relação com a confusão mencionada .fixar para que em quantificações mais internas esta parte não percorra outras coisas , seja "fixa" alí
a--->b , onde  a e b  são diagramas e de alguma forma , provavelmente por variáveis em comum , está determinado um  ab  como ampliação de  a , significa que qualquer diagrama verdadeiro em que  a  ocorra como subdiagrama pode ser ampliado incluindo ainda , da forma mais disjunta possível , uma parte correspondente a  b  com o mesmo significado que  b  tem em  ab , resultando também em um diagrama verdadeiro Quantificação universal Lembrar do significado aquí da quantificação existencial , usei  ab  nesta definição apenas para excluir  a  de quantificações dentro de  b , caso contrário usaria  a^b  no lugar de  ab Disse acima que tudo em diagramas pode ser visto como quantificado existencialmente Todas as partes de uma representação verdadeira correspondem a algo que existe , aspectos , situações , etc Mesmo o que é quantificado universalmente Pode ser visto como algo abstrato de que o que é percorrido na quantificação é caso particular , e o que é afirmado talvez pode ser considerado como dando um significado mais específico
Se quero apenas parte de  a  quantificado universalmente uso  c(a--->b) , como disse acima , o significado da quantificação existencial aquí é aquele que existe naturalmente (aquí) em diagramas , e em  c(a--->b)  é apenas como se o que  c  tem em comum com  a  (provavelmente determinado por coincidências de variáveis) , estivesse fora da quantificação universal em  a--->b
Então , em  b  (subfórmulas de  b) de  ab  e de  a--->b , a ampliação  a  do diagrama incial faz o papel de diagrama inicial , todos os diagramas representados alí são considerados ampliações de  a
Como o diagrama inicial ocorre como subdiagrama exatamente uma vez em qualquer diagrama e estas ocorrências são vistas como a mesma , a parte quantificada de  a  em  a--->b  e  ab  não envolve o diagrama inicial , ou seja , o que o diagrama que é quantificado percorre mantém o diagrama inicial fixo Por isso o significado de  a--->b  e  ab  em subfórmulas muda , pois em subfórmulas uma ampliação do diagrama inicial faz o papel de diagrama inicial alí
Dá a impressão de estar definindo uma espécie de lógica proposicional , pois uso as notações  a^b , a--->b e ab , mas é apenas uma forma de descrição , é preciso algum tipo de diagrama
Dependendo de o que estiver entre os elementos primitivos usados para construir diagramas , seus significados em diagramas , acho que pode resultar coisas semelhantes a lógica de primeira , segunda ordem , teoria dos tipos , e talvez mais geral
0 notes
asdfgdfme · 9 years ago
Text
Acho que é válido que coisas que estão se tornando relevantes sejam discutidas por quaisquer pessoas , com qualquer nível de conhecimento , mesmo leigas , desde que isto esteja claro e que se corre o risco de cometer erros
Entre estas coisas que a gente lê em revistas científicas , uma coisa que me pareceu paradoxal foi que z1|para cima> + z2|para baixo> pode restultar em spin determinado e determinando qualquer direção e sentido (mesmo que a interpretação desta direção e sentido não seja exatamente a de eixo de rotação)
Mas os estados  |para cima> e |para baixo>  (suponho) tem simetria em torno da direção vertical , então como com base neles se pode determinar qualquer direção e sentido ?
Uma sobreposição é algo que pode ter informação que os estados sobreposos não tem , acho que no caso do spin precisa ter esta informação espacial
Para que z1|para cima> + z2|para baixo> tenha sentido é preciso que se convencione uma representação , mapeamento , dos estados de spin como direções (subespaços de dimensão 1) de um vetorial sobre C de dimensão dois e entre os possíveis vetores para  |para cima>  escolher um (usa-se norma 1) , o mesmo para  |para baixo>
Combinações lineares de estados não estão definidas (até onde sei) , apenas de vetores representando eles
Provavemente um experimento que produza um spin determinado (pelo experimento) com determinada direção e sentido como sobreposição dos estados |para cima>  e |para baixo> terá alguma assimetria que determine esta direção e sentido , ou seja , determine a sobreposição específica dos estados |para cima>  e |para baixo> que produz esta direção e sentido
Provavelmente o estado inicial da partícula será sobreposição de dois subfeixes (mas o estado é apenas de uma partícula) e haverá correlação entre qual deles e o spin , o equipamento sobrepõe os subfeixes espacialmente , isto produz para cada mesma posição espacial final sobreposição dos dois spins com que a partícula chega alí , neste caso resultando no mesmo spin em toda a parte final da onda ,
Qual sobreposição dos spins |para cima>  e |para baixo> é obtida ao reunir os feixes depende de qual sobreposição existe entre os feixes antes de serem reunidos , o que depende da assimetria do experimento se o resultado for definido e não aleatório , numa representação dos estados acho que os mesmos coeficientes z1 e z2 da sobreposição dos feixes determina a sobreposição dos spins que ocorre
O conjunto de sobreposições de dois estados ortogonais de um sistema qualquer , por exemplo , dois pontos espaciais que podem ser ocupados por uma partícula , pode ser mapeado na superfície de uma esfera , os dois estados mapeados em polos opostos , há muitos mapeamentos possíveis , no caso do spin há um natural
No caso do spin sobreposições introduzem informação espacial
Acho que ocorre algo semelhante se estados do campo eletro-magnético podem ser obtidos através de fótons , mesmo que não simplesmente por sobreposições de estados de um fóton , e cada estado de um fóton for representado por uma onda que não contém informação de campos elétrico e magnético , a obtenção de um estado introduz a informação que falta
0 notes
asdfgdfme · 10 years ago
Text
Anotações de idéias
Sou leigo em assuntos relacionados a estas coisas
Não sei se existe alguma teoria matemática com um enfoque parecido
Não obtive resultados (teoremas) derivados destas idéias
Acho que formas boas de ver as coisas são o mais importante
Precisa ser mais editado , descrito melhor , mas vou postar assim agora
Se houver algo novo é domínio público
Quero descrever idéias envolvendo relações entre elementos diferente das relações matemáticas definidas através de n-uplas , mas uma destas também pode ser vista como relação deste tipo entre os conjuntos de que são tirados os termos da n-uplas Uma relação tem um conjunto de termos que são ocorrencias de elementos , pode haver mais de uma ocorrencia de um mesmo elemento como termo de uma relação , a relação tem informação de relacionamento e informação sobre os elementos que ocorrem como termos nela , estas provavelmente são diferentes para ocorrencias diferentes mesmo de um mesmo elemento como termo da relação  , a não ser que os termos sejam simétricos na relação , a relação seja simétrica nestes termos Não sei se há diferença fundamental entre informação de relacionamento e informação sobre os elementos que ocorrem como termos , informação sobre um elemento é informação sobre sua situação na rede de relações , de relacionamento , provavelmente envolvendo muitos elementos que não ocorrem como termos , além , talvez , de elementos que ocorrem como termos , mas esta informação provavelmente não faz toda parte da informação de relacionamento oficial da relação entre os termos Então a informação oficial de uma relação é toda de relacionamento e parte dela pode ser de relacionamento entre elementos que ocorrem como termos Mas vou admitir que , mesmo da parte da informação oficial de uma relação que seja de relacionamento entre elementos que ocorrem como seus seus termos haja uma parte própria que é a informação de relacionamento oficial da relação , o restante é informação sobre seus termos , portanto , vou supor a diferença entre informação oficial sobre os termos e informação oficial de relacionamento entre os termos Além disso , uma relação pode ter informações diferentes sobre um elemento para cada ocorrencia dele como termo e informação de relacionamento diferente para cada ocorrencia de um mesmo elemento como termo , e uma relação pode relacionar um elemento consigo mesmo onde ele faz papéis diferentes nesta relação , para cada papel uma ocorrencia dele como termo da relação Não há uma ordem entre os termos neste conceito de relação , mas uma relação ou tipos de relação podem ter informação sobre ordem entre os termos ou determinar uma ordem ou outra estrutura envolvendo os termos Os conjuntos de termos de relações diferentes são disjuntos (mas não os conjuntos de elementos que ocorrem como termos) , ocorrencias de um elemento são diferentes do elemento A palavra termo se refere a ocorrencias de elementos como termo de uma relação , uma ocorrencia de um elemento é diferente do elemento de que é ocorrencia , pode ter ocorrido de me referir aos elementos que ocorrem como termos como "termo" , mas vou evitar Posso usar a palavra "ocorrencia" em outras situações onde mesmos elementos podem aparecer mais de uma vez Num contexto onde pode haver várias ocorrencias de uma mesma relação , uso o conceito de termo de ocorrenica de relação , conjuntos de termos de ocorrencias diferentes de relação , mesmo que sejam de uma mesma relação , são disjuntos Uma relação é simétrica num conjunto de termos , ocorrencias de um mesmo elemento , se não é possível distinguir estes termos com base no que a relação diz Há a idéia de duplicar termos de uma relação obtendo termos simétricos Vou chamar de diagrama algo que tem um conjunto de nós e um conjunto de ocorrencias de relações , cada ocorrencia tem cada termo "ligado" a um nó , termos de ocorrencias diferentes ou mesma de relações diferentes ou mesma podem estar ligados a um mesmo nó desde que sejam ocorrencia de um mesmo elemento (como conjuntos de termos de relações diferentes são disjuntos poderia-se definir diagrama através de ocorrencias de termos , que por sua vez também já são ocorrencias) (descrevo mais abaixo uma idéia de contextualização onde um conjunto compatível de elementos determina uma relação com um termo para cada elemento do conjunto , no caso descrito o termo é ocorrenica deste elemento , então também pode haver um conceito de diagrama como conjunto de conjuntos de ocorrencias de elementos) Intuitivamente um diagrama é uma forma de mostrar certo relacionamento Um diagram é conexo se é possível ir de um nó a outro por uma sequencia de nós cada par consecutivo estando ligado a termos de pelo menos uma mesma ocorrencia de relação Há também a noção de partes conexas de um diagrama Relações também são elementos que podem ser relacionados Um caso importante é quando uma relação entre relações depende de forma importante de uma correspondencia entre termos das ocorrencias de relações como termo dela Vou chamar de relação-termo os termos de uma relação entre relações , então uma relação-termo é uma ocorrencia de relação como termo Vou supor um tipo de relação entre relações que vou chamar de relação com correspondencia (total) de termos ( rcct ) , o relacionamento que uma rcct faz determina em particular , de uma forma padronizada , um conjunto de conjuntos de termos correspondentes de relações-termo dela , cada um tendo um termo de cada relação-termo dela , cada termo de cada relação-termo pertencendo a pelo menos um conjunto de termos correspondentes , se pode pertencer a mais de um ou não vou deixar em aberto E um tipo mais geral de relação entre relações que vou chamar de relação entre relações com correspondencia parcial de termos ( rccpt ) que depende de forma importante de algo semelhante a um diagrama (descrito acima) , mas onde está removida a limitação de um nó estar ligado a termos que são ocorrencia de um mesmo elemento , os termos ligados a um mesmo nó são um conjunto correspondente de termos , para uma rccpt pode haver termos com correspondente em apenas parte das outras relações ou em nenhuma outra , ou seja , um conjunto de termos correspondentes pode ter de 1 até o número de relações termo elementos , da mesma forma que para rcct , vou deixar em aberto se conjuntos de termos correspondentes podem ter elementos em comum ou não , se podem isto é similar a termos de ocorrencias de relações em diagramas poderem ocorrer mais de uma vez para a mesma ocorrencia de relação ligados a nós diferentes , vou usar a palavra nó também para estes conjuntos de termos correspondentes em relações rccpt Uma rcct é uma rccpt Imagino os termos de relações em geral dispostos horizontalmente e as relações termo de uma rcct ou rccpt verticalmente , se numa rccpt há poucos termos correspondentes entre relações termo a configuração fica mais horizontal , imagino os termos de mesmas relações termo horizontalmente contíguos , mesmo que nem sempre seja possível , então aproximando verticalmente as relações termo mais que a distancia horizontal pode-se imaginar as relações termo dispostas horizontalmente , a configuração resultante é semelhante a um diagrama , que aliás foi usado na descrição de rccpt Um diagrama pode ser considerado ou definido como uma rccpt em que termos correspondentes são ocorrencia de mesmos elementos e sem outra informação a não ser a informação de conjuntos correspondentes de termos Uma rccpt é conexa se é possível ir de um nó (conjunto correspondente de termos) a outro por uma sequencia de nós , dois nós consecutivos sendo termos de pelo menos uma mesma relação termo da rccpt (talvez devería-se levar em conta qual o relacionamento que a rccpt faz entre relações-termo que aparecem consecutivas desta forma) Se imaginar-se uma relação contendo informação de semelhança entre seus termos , provavelmente determina uma correspondencia entre partes (ou aspectos ou elementos relacionados) em situação semelhante de seus termos Pode-se ver uma relação como sendo ou determinando algo maior A idéia vem de relações convencionais entre conjuntos , subconjuntos dos produtos cartezianos dos conjuntos de termos , o elemento maior é o conjunto de n-uplas pertencente à relação unido com a união disjunta dos subconjuntos que não ocorrem como termo de n-uplas pertencentes à relação , se os conjuntos tem estrutura e a associação feita pelo conjunto de n-uplas preserva de alguma forma esta estrutura então provavelmente há uma estrutura no conjunto de n-uplas que generaliza as estruturas destes conjuntos , na parte correspondente aos subconjuntos restantes vale a estrutura original , acho que pode haver uma ligação natural desta parte com a estrutura no conjunto de n-uplas resultando em uma única estrutura , isto pode funcionar mesmo que a relação seja muito mais complexa do que fazendo associações um a um , acho que num caso extremo pode resultar na estrutura produto Talvez uma motivação mais geral seja uma generalização de relação convencional permitindo n-uplas parciais , termos quaisquer podendo faltar Vou supor uma operação , talvez parcial , de união que resulta num elemento maior como este , uni( r ) = elemento maior ,  r  relação A operação é unária , mas como descrito mais abaixo , os termos da relação podem ser vistos como argumentos , a estrutura de argumentos é a relação (em vez de uma estrutura que consiste de uma sequência) Provavelmente se  r  é rccpt ou diagrama então  uni( r )  é uma relação com um termo para cada nó de  r Talvez uma matriz parcial e um conjunto de ocorrencias de relações para cada linha e outro para cada coluna tal que os termos são ocorrencia dos elementos que ocorrem na linha ou coluna determine uma rccpt entre as relações "horizontais" Provavelmente se  r  é esta rccpt , em  uni( r )  o termo correspondente a cada nó de  r  é a união da relação correspondente (numa rccpt geral não sei de que relação os termos seriam união) Pode-se definir relação bidimensional , que determina para o conjunto de seus termos uma estrutura de matriz parcial onde a ordem entre as colunas não está definida e a ordem entre as linhas não está definida , mas acho que para minhas finalidades rccpt será melhor Pode haver um tipo de relação entre relações que compara a quantidade de informação , a informação de uma estar na outra também , isto depende de uma correspondencia entre termos , uma rcct , se  s  é uma destas relações vou usar a notação  r1 <s= r2 Pode haver uma operação composição , se  r1 <s1= r2  e  r2 <s2= r3  então  r1 <s1.s2= r3  (não confundir com a composição de (ou através de) diagramas ou rccpt descrita mais abaixo) Pode haver uma confusão na noção de informação contida em uma relação por que uma relação com pouca informação aponta mais precisamente algo (o que exatamente ela diz) e a especificação disto seja maior , algumas relações com muita informação talvez possam ser especificadas mais facilmente , talvez tendam a ser vistas como abstratas , vou ficar com a idéia intuitiva de quantidade de informação em uma relação , quanto dá para saber sobre os elementos que ocorrem como termos à partir da relação , do que ela diz oficialmente Estas relações de comparação de informação podem ser parte de uma categoria , mas por causa da operação composição de diagramas ou rccpt descrita mais abaixo pode ser mais útil uma categoria onde os morfismos diminuem informação (na restrição (descrita mais abaixo) correspondente da relação contradomínio) e aumentam número de termos , invertendo  <s=  para  =s>  já pode se pode ter notação para morfismo , vou permitir também que os morfismos aumentem o conjunto de termos , então não vou usar a notação  =s> Para uma relação que mostra que duas relações tem a mesma informação vou usar a notação  r1 <=s> r2  , da mesma forma depende de correspondencia entre termos de  r1  e  r2 Acho que estas rcct  r1 =s> r2  são , entre os conceitos que descrevo aqui , o mais próximo da relação entre relação convencional e n-uplas pertencentes a ela , mas a generalização que quero usar são as relações rccpt Como conjuntos de termos de relações diferentes são disjuntos , quando descrevo operações envolvendo relações , ou está definida uma relação arbitrária que faz o papel de resultado ou o resultado está definido a menos de relações  <=s> Uma rccpt tem também um aspecto semelhante a relação na direção dos conjuntos de termos das relações termo , que teria um termo correspondente a cada conjunto correspondente de termos , não é exatamente uma relação , mas algo com propriedades semelhantes , não está definido de quais elementos ou de que tipo de elementos os termos são ocorrencia  , este conceito é útil para definir algumas coisas de forma mais simples Vou supor uma operação _' tal que se  R  é uma rccpt  R'  é ocorrespondente do tipo descrito acima , tem um termo para cada nó (conjunto de termos correspondentes) de  R R'  tem toda a informação de  R Então há uma operação inversa  _-  ,  R'- = R Vou chamar  R'  de  '-relação Para me referir às relações termo de uma rccpt  R  se estou falando da '-relação  R'  usarei a palavra "linha" , termos de  R  correspondem a linhas de  R'  , os termos de  R'  correspondem aos nós de  R Então para cada operação ou propriedade envolvendo relações pode haver uma correspondente para '-relações , '-relações fazem o papel de relações e relações fazem o papel de elementos , que neste contexto imagino verticais (mas ninguém faz o papel de elementos que ocorrem como termos das '-relações  , não está definido de quem são ocorrencia) , provavelmente será necessária uma correspondencia entre linhas das '-relações , os termos das relações que fazem o papel que era de elementos também entram nesta correspondencia , neste contexto poderiam ser chamados de linhas também (sobre relações fazerem o papel correpondente a elementos , pensei em definir elementos  r'  para relações  r , mas acho que é melhor não) Para algo que envolve várias relações e elementos pode haver um correspondente substituindo apenas parte das relações por '-relações e parte dos elementos por relações rccpt podem ser generalizadas para rccpt entre '-relações , ou seja , uma rccpt entre '-relações é uma relação entre '-relações com correspondencia parcial de termos das '-relações Não sei se este conceito tem utilidade sem uma correspondencia entre linhas das '-relações relacionadas Vou chamar de rccpt= uma relação entre '-relações com correspondencia parcial de termos e correspondencia total de linhas (justapor "'" pode evocar outros significados , e "=" dá a idéia de linhas)
Vou supor definida uma operação de restrição de relações a subconjuntos de seus termos , acho que não é intrínseca das relações , depende de definição e pode haver várias definições possíveis Há a correspondencia de termos entre a restrição e os correspondentes na relação original Se  A  é um conjunto de elementos  r|A  pode ser notação para a restrição de  r  aos termos que sejam ocorrencia de algum elemento de  A  , portanto esta notação não dá conta de todas as restrições Se  r1  é restrição de  r2  então  digo que  r2  é extenção de  r1  , existe a correspondencia de termos Há o conceito de uma relação ser extenção simultaneamente de um conjunto de relações , que depende de correspondencias de termos , acho que para especificar como uma relação é extenção comum de um conjunto de relações é necessário um diagrama Acho que a união da rccpt determinada por um diagrama provavelmente será a extenção comum com mais informação conforme o diagrama A operação união tem um aspecto aditivo Há um conceito de uma outra operação , provavelmente parcial , definida em relações , que tem um aspecto mais multiplicativo , a composição A composição é unária  , definida em relações , mas vale o mesmo comentário feito para a união A idéia vem da idéia de composição de diagramas , uma generalização de composição de morfismos de teoria das categorias e da definição de relações n-árias convencionais (contendo um conjunto de n-uplas) através de diagramas de relações convencionais Como  rccpt  é algo semelhante a diagramas e estes inclusive podem ser vistos como rccpt achei que pode-se definir composição para algum subconjunto das rccpt , depois achei que pode ser possível definir composição para algum subconjunto do conjunto de relações (ou composições diferentes para subconjuntos diferentes) , uma motivação é que através das relações em que um elemento está envolvido ele pode ser visto como relacionando elementos A composição de um diagrama poderia ser chamada composição de relações conforme o diagrama Um diagrama tem mais informação de relacionamento que cada relação que ocorre nele , a união de um diagrama tem toda esta informação , mas a composição normalmente tem menos informação que a união , então surge a confusão mencionada mais acima sobre a idéia de quantidade de informação em uma relação , porque aumentando um diagrama o que a composição dele diz sobre a parte (restrição) correspondente à original provavelmente diminui , diagramas podem ser usados para mostrar todo o relacionamento mostrado (acho que ficou claro) , mas se forem usados para mostrar o relacionamento que a composição deles faz então um diagrama maior tem menos informação sobre a parte original , mas acrescenta a informação sobre a parte adicionada (estas duas informações provavelmentesão não comparáveis) , então pode-se imaginar que é necessário um diagrama maior para mostrar uma informação mais precisa (se o diagrama for usado para mostrar o relacionamento que sua composição faz) Então , se  r1  é composição de  d1  e  r2  é composição de  d2  e  d2  é obtido de  d1  acrescentando ocorrencias de relações sem acrescentar nós então , na minha visão intuitiva destas coisas , r2  tem menos informação que  r1 , pode existir uma rcct  s  que expressa isso ,
r1 =s> r2  conforme a notação descrita mais acima Talvez haja a relação entre composição e união tal que se  r1  é união de  d  e  r2  é composição de  d  então existe  s  com  r1 =s> r2 No caso da composição de diagramas ou rccpt suponho que há uma propriedade distributiva sobre a união de diagramas ou rccpt (quando relações que ocorrem no diagrama ou são termos da rccpt são uniões de outros diagramas ou rccpt) Acho que deve haver uma propriedade distributiva em geral , descrita mais abaixo através da idéia de expressões descrita abaixo Acho que para as finalidades aqui é conveniente que funções de vários argumentos sejam através de relações , funções de um argumento aplicadas em relações Notação: f(r a1,...,an) Nesta notação  a1,...,an  são elementos que ocorrem como termos da relação  r , se há elementos que ocorrem repetidamente se repetem também na sequencia  a1,...,an , então tem sentido falar "o elemento ai" (que ocorre como termo) e também "o termo ai" , neste último caso o índice ou notação para o termo é importante , a ordem a1,...,an  é arbitrária , mas pode ser um ponto de referência para se referir aos termos As operações serão tratadas assim Uma expressão determina , para um subconjunto dos termos , expressões que resultam neles por exemplo  f(r a1,...,g(s b1,...,bn),...,an) As relações fazem parte das expressões , acho que para que haja a noção de substituir um argumento obtendo outra expressão é preciso que haja esta noção para relações , não estou supondo nada Comparação entre estruturas de argumentos (relações) através de rcct Comparação entre expressões também através de rcct A noção de duas expressões terem a mesma estrutura depende da noção de duas relações terem a mesma estrutura Uma relação que mostra que duas relações tem mesma estrutura seria uma rcct Uma relação já pode ser vista como uma expressão , o resultado é ela Uma rccpt pode ser vista como expressão em que as relações termo são subexpressões , o resultado é ela Acho que formalmente pode-se usar operações unárias em expressões para ficar definido quando uma relação termo é subexpressão ou apenas argumento Um diagrama pode ser visto como uma rccpt e como uma expressão Ordem nos argumentos é possível com relações que determinam ordem entre seus termos De relações que determinam ordem entre seus termos é possível obter o n-ésimo termo , coisas semelhantes para relações que tem alguns termos em papéis definidos existentes em outras relações Uma expressão mais mostra um relacionamento do que é meio de obter algum resultado Então , se  o  é composição e  u  união , descritos mais acima , como expressar a distributividade da composição sobre a união ? Se um termo de  r  é união  o(r  a1,...,u(s b1,...,bm),...,an) =  u(s2 o(r1 a1,...,b1,...,an) , ... , o(rk a1,...,bm,...,an) ) (r1  diferente de  r) onde talvez o  u  no lado direito não representa exatamente o mesmo que no lado esquerdo , mas algo similar , talvez o mesmo para  o , e as relações  s2,r1,...,rk  provavelmente são determinadas pelo par  r  e  r1  , acho que esta determinação será parte da propriedade distributiva Um caso particular é quando  r  é  rccpt , talvez diagrama (então  a1,...,u(s b1,...,bm),...,an  são as relações que ocorrem , r  determina como seus termos estão ligados aos nós) e uma relação termo é união de uma rccpt s  (cujas relações termo são  b1,...,bm) , isto precisa determinar um conjunto de rccpt ou diagramas  r1 , ... , rk  cujas composições unidas resultam igual ao primeiro resultado e a maneira  s2  como suas composições (portanto , seus nós) estão ligadas (uma rccpt) para determinar uma união Como expressar que se pode fazer uma composição por partes (uma propriedade associativa) ?  o(r a1,...,ai,...,aj,...,an) = o(r2 a1,...,o(s ai,...,aj),...,an) a determinação de  r2  e  s  à partir de  r  e do conjunto de termos  ai,...,aj  deve fazer parte da propriedade associativa , provavelmente  s  será a restrição de  r  aos termos  ai,...,aj  , se  r  é diagrama (representado por uma rccpt) provavelmente  s  será subdiagrama de  r Se  r  é rccpt , talvez diagrama , a1,...,an  relações , a restrição de
o(r a1,...,ai,...,aj,...,an)  aos termos correspondentes aos nós ligados aos termos das ocorrencias de relações  ai,...,aj  pode ser diferente de
o(s ai,...,aj) , uma forma de contextualização Para expressar a idéia de que é possível descartar uma relação que não diz nada de um diagrama sem alterar a composição é preciso estar definido quando uma relação não diz nada se  a1  não diz nada  o(r a1,...,an) = o(s a2,...,an) onde provavelmente  s  é a restrição de  r Talvez possa-se criar um exemplo de operações assim supondo que elementos são conjuntos disjuntos , relações são determinadas por subconjuntos dos produtos cartezianos dos conjuntos de termos , operações são como operações convencionais entre conjuntos , mas identificando elementos que sejam termos de mesmas n-uplas , depois de duplicar elementos suficientemente para que cada elemento tenha exatamente um correspondente em cada conjunto argumento (portanto cada n-upla terá um elemento correspondente em cada conjunto argumento) e criar elementos suficientes para que todos tenham correspondente em cada conjunto argumento , elementos criados para elementos diferentes sendo diferentes , no caso de uma operação similar à intersecção estes últimos não teriam correspondente no resultado , no caso de uma operação similar à união , teriam , talvez as n-uplas mencionadas sejam os elementos do conjunto resultado (talvez poderiam surgir conjuntos não disjuntos , a restrição de os conjuntos serem disjuntos é para entender a idéia) , então intersecção resultaria no conjunto de n-uplas e a união conteria ainda os elementos sem correspondente nos outros conjuntos , não sendo termos destas n-uplas Tenho uma idéia mais geral , a idéia original , de relação entre expressões do que terem a mesma estrutura , dado um conjunto de expressões com mesma estrutura e uma rcct entre cada conjunto de relações correspondentes , isto pode determinar um relacionamento de certo tipo válido ou não (notar que entre este conjunto de rcct há a correspondencia de termos onde relações tiradas de uma mesma expressão são correspondentes) , este relacionamento pode fazer mais que mostrar que as expressões tem mesma estrutura , até no caso onde há apenas duas expressões , porque nesta idéia mais geral não considero estas rcct simétricas Para tratar o relacionamento entre expressões seria conveniente extender as operações para '-relações , mas há o problema de definir de quem os termos de uma '-relação são ocorrencia , pois subexpressões resultam neles Talvez a definição de quais elementos ocorrem em  R'  deveria fazer parte da definição da operação  _' , provavelmente pode ser definido de mais de uma maneira Entre um conjunto de conjuntos vale a relação correspondente às coincidencias de elementos neles Os casos comuns onde estes conjuntos seriam necessários provavelmente envolveriam conjuntos com mais de um elemento , o caso com um elemento talvez seja um pouco impróprio (no sentido usado em matemática) , mas acho que de qualquer forma agora parece mais natural encontrar relações para o papel de conjuntos Talvez entre os elementos do conjunto universo usado pode-se considerar alguma relação semelhante , de modo que um conjunto deles possa ser visto como uma relação Relações generalizam conjuntos A possibilidade de colocar um conjunto de elementos em determinada ordem é uma propriedade do conjunto , uma relação entre os elementos (se há conjuntos (acho que seriam exóticos) para os quais há menos ordens possíveis , não sei) , então uma relação que determina uma ordem no conjunto de termos e nenhuma outra informação não é tão artificial assim Entre um conjunto de conjuntos a possibilidade de elementos de conjuntos diferentes serem equivalentes para alguma finalidade é uma propriedade do conjunto de conjuntos , uma relação entre estes conjuntos (se há conjuntos de conjuntos com mesmos números de elementos e número diferente de possibilidades de identificação entre conjuntos diferentes não sei) , então uma relação rccpt sem informação além da correspondencia de termos não é tão artificial assim Acho que conjuntos com apenas um elemento podem também ser vistos como propriedades (relações com um termo) Pode-se definir as coisas tal que os termos de  R'  são relações entre termos correspondentes , se for o caso podem ser simplesmente relações determinadas por conjuntos de elementos Então podería-se abrir mão do conceito de '-relação assim como apresentei , passando a ser apenas uma relação para a qual existem adicionalmente definidas também as relações linha como descreví mais acima Mas quero manter possível que nos conceitos que não dependem de elementos ocorrendo como termos se use este conceito mais geral , tenho a impressão que a escolha das relações termo pode ser arbitrária Então pode-se tratar o relacionamento entre expressões generalizando as operações para '-relações Estas versões generalizadas das operações provavelmente serão parciais , nem sempre definidas , mesmo que a operação original esteja sempre definida (ou talvez possam resultar em relações "vazias") Uma operação generalizada para '-relações deve determinar as correspondencias entre linhas das ocorrencias de '-relações e termos das relações resultado (que neste contexto podem ser chamadas de linhas também) Inicialmente achei que se são relações que ocorrem como termos em  R'  estas ocorrencias tem algo de diferente de ocorrencias de elementos em relações por estar definido quando termos delas pertencem a uma mesma relação termo de  R Mas isto é apenas uma estrutura no conjunto de relações termo Uma estrutura no conjunto de termos determinada por uma relação pode envolver também elementos relacionados com os elementos que ocorrem como termos Então há uma idéia de "como um elemento ocorre como termo" , os detalhes dependendo da relação Quando uma relação determina uma ordem no conjunto de termos pode-se dizer que um elemento ocorre como n-ésimo termo Quando os termos são relações e a relação determina correspondencias de termos as correspondencias possíveis são maneiras de ocorrer , neste caso não sei se dá para comparar maneiras de ocorrer em relações cujas relações termo são outras Algumas relações assim poderiam determinar adicionalmente uma ordem no conjunto de termos Então pode haver mais de uma noção de "como ocorre" em uma relação , e noções mais ou menos informativas As relações ou '-relações que aparecem numa expressão fazem parte dela As subexpressões "determinam" quem são os termos e uma relação ou '-relação determina como ocorrem nela Vou supor que as operações extendidas para '-relações agem em cada linha como a operação original Então , em particular , pode-se tratar os relacionamentos entre composições de diagramas semelhantes Se '-relações tem relações como termos então talvez os termos da composição de uma rccpt  R  sejam as uniões destas relações Como disse mais acima , onde uma operação aplicada em uma relação resulta em um elemento a generalização para '-relações resulta em relações E provavelmente cada termo desta relação resulta da aplicação da operação em uma linha da '-relação , e a correspondencia entre as linhas da '-relação e termos do resultado faz parte da generalização da operação , acho que a utilidade desta correspondencia depende da situação Pode haver uma operação  _*  tal que  cmp( r ) = (uni( r ))* Acho que isto é uma propriedade que a composição pode ter ou não , no caso mais geral acho que não tem R** = R* Para relações , r*  (composições podem resultar em relações) pode ser a relação com mais informação de  r  totalmente caracterizada pelas rcct (correspondencia total de termos) de que é termo , ou seja , por seus relacionamentos por rcct , informações em  r  correspondentes a rccpt próprias de que é termo podendo ser perdidas Talvez para que esta definição de  r*  funcione seja preciso usar um subconjunto apropriado das rcct Se  Rr  é uma relação geral de referencia (acho que com um termo para cada elemento) , para cada conjunto  A  seja  R(A) = (Rr|A)*  (Rr|A)*  provavelmente tem menos informação que  Rr|A  , isto é contextualização no conjunto  A Então um conjunto determina uma relação com um termo para cada elemento , ocorrencia sua Então um diagrama fica determinado por um conjunto de conjuntos de ocorrencias de elementos Então os elementos "sabem" como se ligar para formar relações ou diagramas com uma única relação , estas ligações valem em cada conjunto , e portanto nas intersecções , de um conjunto de conjuntos , em outros casos não tem efeito Algo semelhante ocorreria se os conjuntos de termos de relações diferentes pudessem ter intersecção (provavelmente haveria versões diferentes de cada relação) , um conjunto de conjuntos de ocorrencias de relações determinaria um diagrama , dentro de cada conjunto , e portanto nas intersecções , valeriam estas interseções de conjuntos de termos para determinar termos ligados a nós do diagrama , para ocorrencias de relações que não façam parte de um mesmo destes conjuntos estas intersecções de conjuntos de termos não teriam efeito , ou seja , as relações "saberiam" como se ligar para formar um diagrama , estas ligações seriam válidas dentro de cada conjunto de um conjunto de conjuntos de ocorrencias deste tipo de relações Elementos em geral já podem ser vistos como tendo partes , aspectos , na verdade outros elementos relacionados com eles , que como que ocorrem neles , não estando definido um conjunto oficial de termos , portanto não estando definido o que exatamente ocorre neles , isto é semelhante a uma '-relação , olhando as descrições de operações vendo elementos como relações ou '-relações já se pode ter uma noção de coisas mais específicas que podem ser defininas , talvez em alguns casos seja preciso imaginar correspondencias entre partes dos elementos , relações podem fazer correspondencias entre partes entre outras coisas Assim como uma função pode apontar uma correspondencia qualquer entre elementos mas só parte das funções apontam uma correspondencia que serve a certa finalidade , por exemplo , apontar uma semelhança , talvez só parte das relações sirvam a certa finalidade Ou apenas certos elementos sirvam a certa finalidade Um conjunto de elmentos pode servir a certa finalidade , mas a união de uma relação em que ocorrem como termos não servir Provavemente esta relação seria definida como não servindo à finalidade Em particular , apenas um subconjunto das rccpt pode servir a certa finalidade Já vemos um elemento tendo estrutura da rede de relações Uma função que preserva algo dos relacionamentos preserva algo da estrutura de um elemento do seu domínio (vale para todos os elementos do domínio) Podem haver funções diferentes que além de associarem um elemento a um mesmo outro preservam a mesma estrutura deste elemento Então surge a idéia de um tipo de morfismo entre elementos Dada uma função que determina desta maneira um morfismo para um elemento de seu domínio , talvez haja uma menor restrição dela que determine o mesmo morfismo , talvez esta restrição determine morfismos para outros elementos de seu domínio Se uma função determina vários morfismos com domínios em seu domínio , estes morfismos estão um para o outro de forma semelhante a que os pares ordenados pertencentes a uma função estão para a função , mas sem hierarquia Se um subconjunto de um produto carteziano preserva alguma estrutura entre os conjuntos envolvidos , então determina uma relação de semelhança entre os termos de cada n-upla , e uma rcct entre estas relações , a relação entre elas generaliza relação entre n-upla e relação convencional , relações rcct em geral generalizam esta relação , rccpt generalizam mais Assim como apenas um subconjunto das funções preserva certa estrutura , pode haver subconjuntos das relações válidas para certas finalidades , e certas expressões que permitem obter outras com esta mesma propriedade Uma função é uma relação de semelhança , mas conjuntos (vistos apenas como conjuntos) tem pouca estrutura , e portanto há muitas destas relações de semelhança , mas levando em conta a natureza dos elementos e estruturas que tem , o conjunto de funções que as preserva fica restrito , levando em conta mais tipos de estrutura , o conjunto de funções que as preserva fica mais restrito , a idéia geral é uma relação de semelhança preservar outras estruturas , quando preserva , determina uma relação de semelhança também neste novo contexo que leva em consideração estas estruturas adicionais ---------------------------- Os elementos que ocorrem como termos em relações são caracterizados por sua situação na rede de relações Uma propriedade de um elemento (relação com um termo , ocorrencia dele) corresponde a alguma propriedade da situação do elemento na rede de relações E pode-se imaginar que o que ocorre numa relação são as situações dos elementos que ocorrem como termos na rede de relações Mas a informação oficial da relação não é tudo isso , acho que é parte dessa informação Pode-se especificar elementos (pelo menos , parte deles) sem mencionar por completo sua situação na rede de relações Então , pode-se ver uma relação como a passagem de uma informação completa , que determina os termos para parte dela , para a informação oficial da relação Pode-se definir algo cuja informação é uma situação possível (provavelmente com informação insuficiente para determinar os elementos) que um conjunto de elementos pode ter na rede de relações , tem termos mas não são ocorrencia de elementos (fica determinada uma relação convencional , contendo um conjunto de n-uplas , a menos da ordem entre os termos) , mas elementos abstratos também são totalmente específicos , mas podem ser relacionados conforme idéias de abstração , e um conjunto de elementos abstratos definidos tal que exemplos seus satisfazem certa relação , vistos como específicos satisfazem uma relação correspondente a esta , pode haver um tipo de rcct que conduz do abstrato ao mais específico Acho que não dá para entender as coisas se não for possível identificar algo comum em coisas diferentes Parece que as definições envolvendo relações que fiz não contém mecanismos para isto Talvez uma solução um tando mínima seja haver um tipo apropriado de relação identificável (suponho que rcct e rccpt já são tipos identificáveis , mas acho que não tem esta capacidade) , talvez um subtipo das rcct , como aquelas descritas mais acima que comparam quantidade de informação das relações (presença da informação de uma relação em outra) Não incluí este tipo de coisa até aqui para evitar hierarquias , descrever todos os conceitos que sejam possíveis sem usar hierarquias ----------- Pode-se usar setas para representar a relação de um elemento que ocorre como termo e a relação , as setas tendo identidade , pode-se definir as setas como sendo os termos da relação Isto pode dar origem a um modelo matemático de relações baseado nisto Em uma generalização deste , as setas podem ser componíveis , resultando numa categoria , talvez isto poderia ser usado para tratar idéias de abstração Pode haver também os morfismos entre relações mencionados mais acima , que diminuem informação e aumentam quantidade de termos Na propriedade associativa da composição de diagramas  o(r a1,...,ai,...,aj,...,an) = o(r2 a1,...,o(s ai,...,aj),...,an)   há a inclusão do subdiagrama  s  no diagrama  r A operação composição (não de morfismos , mas a composição descrita aqui) pode ser representada por uma função que leva inclusões de diagramas em morfismos entre relações   d1--f-->d2  |---->  H(f)--F(f)-->o(d2) o contradomínio é a composição descrita acima de  d2 , H(f)  é a restrição da composição correspondente ao subdiagrama  d1  (ou determinado por  f) e  F(f)  é a inclusão dele na composição  , ou , para dar continuidade a esta função , um functor da categoria de quadrados comutativos entre inclusões de diagramas numa categoria de quadrados comutativos entre morfismos entre relações --------------------- Vou usar notação para composição de morfismos na mesma ordem em que os morfismos aparecem em diagramas de morfismos ,
fg = --f-->--g--> Os morfismos entre relações que considerarei são determinados por funções com domínio no conjunto de termos da relação domínio e contradomínio no conjunto de termos da relação contradomínio , e são composições dos subtipos:  »-morfismo: função bijetora , diminui a informação da relação  {-morfismo: função injetora , inclusão em extenção da relação domínio  >-morfismo: função sobrejetora , entre os casos permitidos de aglutinação de termos estão os casos de termos simétricos descritos mais acima , outros casos vou deixar em aberto Cada um dos três tipos é preservado por composições Agora quando falar em composição pode ser de morfismos , observar contexto Estes tipos de morfismos , além de ser preservados por composição tem um aspecto cumulativo , diminuição de informação , extenção de relações e aglutinação de termos são cumulativos Pode haver aspectos que mesmo quando presentes simultaneamente num morfismo são cumulativos Em diagramas de morfismos posso usar as notações
--f»-->  ,  --f{-->  e  --f>--> para indicar que pertencem a um destes subtipos Acho que na ordem  f = --h»--> --g>--> --u{-->  sempre há uma fatoração única Um morfismo entre diagramas ou rccpt (entre rccpt , que são relações , e entre diagramas se são definidos como rccpt , há também os morfismos acima) consiste de um morfismo de cada ocorrencia de relação ou termo de rccpt no domínio para uma no contradomínio , este conjunto de morfismos determinando uma função dos nós do domínio nos nós do contradomínio , uma função entre ocorrencias de relações ou termos das rccpt também fica determinada , no caso de morfismo entre rccpt além disso algum tipo de relacionamento feito pela rccpt precisa ser preservado por estas associações , vou apenas supor isto agora e deixar de lado o que seria Pode-se definir subtipos destes morfismos:   »-morfismo se todos os morfismos entre relações envolvidos são »-morfismos   , talvez outra condição deveria ser que a função entre relações seja bijetora (então acho que a função entre nós também será)   {-morfismo se todos os morfismos entre relações envolvidos são {-morfismos , talvez devería-se exigir que a função entre relações seja injetora (então acho que a função entre nós também será) e permitir que não seja sobrejetora   >-morfismo se todos os morfismos entre relações envolvidos são >-morfismos , então a função entre nós pode não ser injetora , talvez devería-se exigir que a função entre relações seja sobrejetora (então acho que a função entre nós também será)   #-morfismo se todos os morfismos entre relações são isomorfismos , a função entre relações é injetora , então #-morfismos são inclusões de diagramas ou rccpt ,  podem ser chamados também ampliações de diagrama , composições de #-morfismos também são #-morfismos e a "alteração feita" por #-morfismos (aumentar diagramas ou extender rccpt) também é cumulativa Relações podem ser consideradas diagramas com uma ocorrencia delas e um nó para cada termo , então a operação composição de diagramas pode ser tratada dentro de uma mesma categoria , para este subconjunto de diagramas os conceitos de  »,{,<-morfismos coincidem -------------- Seja uma classificação dos diagramas em possíveis (provavelmente representando uma situação possível) ou não , talvez os diagramas possíves sejam aqueles cuja composição esteja definida ou seja uma relação não vazia Subdiagramas de diagramas possíveis são possíveis Dado c ^ | # | a----f#--->b seja o pushout na subcategoria de #-morfismos c-----#--->d ^               ^ |                 | #              # |                 | a----f#--->b Um #-morfismo  f  é redundante se  b  é possível e  c  sendo possível  d  é possível Dado um conjunto de #-morfismos redundantes e um diagrama possível inicial , pode ser possível obter uma sucessão de diagramas possíveis mais complexos , de modo análogo à demonstração de conjuntos de teoremas Talvez haja para cada diagrama uma ampliação redundante com uma ocorrencia de relação com um termo em cada nó , e esta relação tenha informação maximal com esta propriedade , e uma função que associa a cada diagrama uma relação assim seja uma composição Uma relação  r  com alguma propriedade ter informação maximal seria ser minimal com relação a  »-morfismos  , se  s--f»-->r  e  s  tem a propriedade então  f  é isomorfismo Então , uma classificação de diagramas em possíveis ou não pode determinar uma composição e esta determina relações rcct
r1 =s> r2  e  a categoria de morfismos entre relações Acho que um diagrama será possível se sua composição estiver definida ou for não vazia O acréscimo de uma ocorrencia da composição de um diagrama nele (da forma mais óbvia) não altera a composição dele Se um diagrama ser possível depender simplesmente de todos os subdiagramas serem possíveis , então não há contextualização entre as partes do diagrama , e acho que então esta relação será uma união do diagrama Acho que qualquer forma de contextualização entre partes de diagramas que influencie o diagrama ser ou não possível torna a relação definida desta forma mais semelhante a um produto do que a uma união , as partes de um diagrama são fatores que podem influenciar o resultado Parece que a definição em lógica de R(x1,...,xn)  (R  uma relação convencional) através de uma conjunção é semelhante a esta composição Uma conjunção de afirmações  Ri(...,...,...)  é como uma união , mas é uma união onde há contextualização , por exemplo , em
R(x,w) = R1(x,y) ^ R2(y,z) ^ R3(z,w)
R2(y,z)  faz toda a diferença
Provavelmente  R(x,w)  não guarda informação de como foi definido , pode haver definições equivalentes Dado um conjunto de relações , a operação de composição de diagramas e uma ordem arbitrária nos conjuntos de termos das relações , uma fórmula   R1(..,...,...) ^ ... ^ Rm(...,...,...) pode representar um diagrama , cada variável correspondendo a um nó , as variáveis sendo apenas auxiliares , a fórmula é verdadeira se o diagrama é possível , ou seja , se a composição está definida ou é não vazia , definições  R(x1,...,xn) = R1(..,...,...) ^ ... ^ Rm(...,...,...)  tem sentido , R  é a restrição da composição do diagrama da direita aos nós correspondentes às variáveis  x1,...,xn Um conjunto de relações do tipo descrito aqui junto com uma operação de composição de diagramas (que pode ser chamada de composição de relações conforme diagramas) é uma estrutura que generaliza categoria , uma categoria sendo vista como um conjunto de relações com dois termos , uma correspondencia de termos entre todas elas , os domínios formando um conjunto de termos correspondentes e os contradomínios formando outro (lembrando que termo é diferente do elemento que ocorre como termo) , e a estrutura consiste apenas nas restrições das composições de digramas consistindo de duas relações "consecutivas" aos nós "extremos" resultando numa relação que também participa da correspondencia de termos geral (no caso de categorias a correspondencia entre termos se estende a todas as categorias e é preservada pelos functores) Se composição ou restrições de composição generaliza composição de morfismos  , uma função que preserva esta estrutura generaliza functores Um diagrama poderia ser definido como esta generalização de functor , o domínio seria a estrutura índice , com um elemento para cada nó do diagrama e uma relação para cada ocorrencia de relação no diagrama Uma tr.nt. convencional pode ser definida como um functor numa categoria de quadrados comutativos A passagem de morfismos para quadrados comutativos é semelhante à passagem de relações para '-relações , mas talvez seria algum tipo particular de '-relações Ao definir a versão para '-relações de algo envolvendo relações (talvez apenas parte das relações envolvidas sejam substituidas por '-relações) pode ser necessário incluir uma correspondencia entre linhas das '-relações Uma tr.nt. generalizada entre um conjunto de functores generalizados poderia ser um functor generalizado com contradomínio no conjunto de '-relações (ou no conjunto de '-relações de algum tipo preservado por composição generalizada) no contradomínio comum (se ele tem rcct pode-se supor que tem as '-relações correspondentes) , precisa fazer parte de um functor assim uma correspondencia entre linhas das '-relações imagem , esta correspondencia é usada na composição generalizada no contradomínio e portanto na definição de preservar a composição E matemática , pode haver definições mais apropriadas para capturar a intuição e outras mais apropriadas para a manipulação matemática , poucas definições darem conta de muitas coisas Relações podem generalizar conjuntos (ou multiconjuntos , pois um elemento pode ocorrer como termo várias vezes) Restrição de relação pode generalizar subconjunto Então , uma relação entre relações , por exemplo , uma rccpt , generaliza conjunto de relações Relações rccpt podem ser uma generalização das estruturas tratadas aqui (conjuntos de relações) Conjuntos correspondentes de termos pela rccpt (nós) podem generalizar termos de relações num conjunto serem ocorrencia de um mesmo elemento (ou fazer um papel similar , não sei) Então uma subestrutura de uma rccpt seria uma restrição dela a um subconjunto de relações termo fechado por composição Acho que os resultados de composições teriam que ser termos e não simplesmente elementos que ocorrem como termos Uma rccpt pode ter termos que são rccpt Sobre uma rccpt que faz o papel de estrutura ter a si mesma como relação termo , ou ter restrições suas como relações termo , não sei Um morfismo de uma rccpt em outra , vistas como estruturas desta forma , levaria a primeira numa restrição da segunda associando relações termo e nós (conjuntos correspondentes de termos) , preservando a composição e algo a ser definido da rccpt Uma tr.nt. generalizada seria um morfismo entre uma rccpt e uma rccpt= (ver mais acima) que composto com uma função que obtém uma linha das '-relações e obtém apenas linhas correspondentes resulta num morfismo Para a idéia de composição de diagramas generalizar composição de morfismos é preciso que possa envolver uma etapa de restrição da relação resultado , assim como um objeto intermediário é "descartado" na composição de morfismos A composição de morfismos envolve sempre um diagrama de morfismos com duas ocorrencias de morfismos e o morfimso resultado pode ser visto como outro com uma ocorrencia Talvez uma composição mais geral de diagramas de morfismos (resultando em algo mais geral que morfismos , as relações descritas aqui) possa determinar desta forma a composição de morfismos Assim como diagramas podem ter limite e colimite , se relações como descritas aqui fossem acrescentadas na estrutura de uma categoria , poderiam ter limite e colimite , talvez limite ou colimite de diagramas de morfismos seriam o mesmo de suas composições , acho que limite ou colimite pode ser a união da relação composição destes , mas acho que se estiver definida composição de relações de outro tipo que diagramas , acho que é algo diferente de limite ou colimite (não sei) Se um diagrama é visto como uma fórmula de lógica , morfismos redundantes (descritos mais acima) podem fazer o papel de regras de inferencia Pode haver uma forma de especificar quantificação universal Alguma estrutura ligada a um nó pode significar que é quantificado , esta estrutura teria que ficar fora do efeito da quantificação E há o problema dos escopos Provavelmente o significado da quantificação teria a ver com possibilidades de ligar o diagrama com outros diagramas possíveis obtendo um diagrama possível Se um nó de um diagrama está ligado em um diagrama maior provavelmente representa algo mais específico Um digrama contendo partes não conexas talvez contenha a conjunção das informações destas partes (isto é como uma conjunção de fórmulas que tem partes sem variáveis em comum , mas como descrito acima um diagrama conexo talvez também possa ser visto como conjunção) Provavelmente é mais conveniente ver fórmulas (em particular , conjunções) como diagramas e aplicar as idéias Acho que as fórmulas podem ser todas interpretadas como afirmando possibilidades lógicas , como subdiagramas de diagramas possíveis devem ser possíveis , acho que subfórmulas podem ser vistas de duas formas , uma , descontextualizada do restante da fórmula , como afirmando uma possibilidade lógica , e outra como no contexto da fórmula (então para uma fórmula falar de hipóteses impossíveis (dentro do sistema) é preciso algum artifício) Então todas as variáveis seriam implícitamente quantificadas existencialmente , quantificação universal seria afixando alguma estrutura na variável , e isto faria parte de interpretação contextualizada Um diagrama afirma uma possibilidade lógica , mas se o diagrama é suficiente para que o significado de parte do diagrama esteja totalmente determinado então o diagrama afirma algo sobre algo específico Vejo constantes em lógica como tendo significado fixo Se uma fórmula envolvendo uma constante é uma possibilidade lógica , é uma afirmação sobre a constante  P(a)  ser uma possibilidade lógica , se  P  e  a  são constantes é equivalente a  P(a)  ser verdadeiro (se constantes tem significado fixo , em particular não podem se tornar algo mais específico , já são totalmente específicas) Então para fazer afirmações específicas sobre coisas específicas através de afirmações sobre possibilidades lógicas basta ser específico o suficiente Mas se uma afirmação de possibilidade lógica afirma mais do que nada provavelmente há algo sobre o que ela pode ser vista como afirmando algo , mas talvez não haja nenhuma subestrutura na representação da afirmação correspondente a isto , substituindo a idéia de subestrutura pela idéia de aspecto (não sei se haveria uma definição formal totalmente geral) talvez haja Na prática provavelmente se usaria notações convencionais , isto sendo apenas uma forma de ver as coisas Se tudo está quantificado existencialmente , qualquer subestrutura de uma fórmula verdadeira diz algo menos específico veradeiro , menos específico que a fórmula original e menos específico que o significado da subfórmula no contexto da fórmula original Imagina-se informação sendo construida por partes na forma de um diagrama Um diagrama representa a possibilidade lógica de elementos relacionados como mostra o diagrama Para especificar algumas coisas se usa elementos auxiliares , nós auxiliares no diagrama , na verdade nós normais , a intensão deles é que é auxiliar Provavelmente estes elementos ou nós auxiliares pode recever um significado , talvez complexo , compatível com os relacionamentos usados Uma fórmula quantificada universalmente pode ser vista como um diagrama , cujas partes podem ser todas vistas como quantificadas existencialmente , pois existe algo correspondente à variavel quantificada universalmente que pode assumir este papel lógico na fórmula , não estou falando de um valor pelo que a variável possa ser substituida , mas do papel da variável na afirmação quantificada universalmente , talvez um papel numa afirmação verdadeira ou num diagrama representando uma possibilidade lógica sempre corresponda a algo que existe , provavelmente abstrato , a estrutura correspondente à quantificação universal da variável pode ser acrescentada na fórmula resultando numa fórmula verdadeira ou mantendo o diagrama uma possibilidade lógica , então o que se vê como existindo não é algo que satisfaz a fórmula quantificada universalmente , mas imagino que há uma substituição válida dos nós do diagrama correspondente em que isto é substituido para o nó apropriado , então quando uma fórmula é vista como diagrama os significados dos nós provavelmente não são os mesmos que os das variáveis da fórmula Acho que as variáveis não quantificadas universalmente , se adimitidas no sistema formal , mantém o significado de quantificadas existencialmente Já numa notação mais convencional , imagino um sistema formal contendo variáveis proposicionais (ou algo semelhante) , conjunção ,
---> e quantificação universal (sobre variáveis proposicionais acho que é não convencional) , onde em  Va f , a  pode ser fórmula (menos convencional) , acho que assim isto pode definir uma estrutura matemática mais simples , todas as subfórmulas de  a  ficam automáticamente quantificadas respeitando igualdades de subfórmulas , a  pode inclusive não aparecer em  f , mas provavelmente subfórmulas de  a  aparecem Acho que
r(a,b)
pode ser codificado como
(r1-->a ^ r2-->b) --> vl
onde  r1  e  r2  representam  r  e  vl  serve para representar este tipo de informação , a e b  são afirmações relacionadas com elementos correspondentes conforme abaixo  (r1-->a ^ r2-->b) --> vl  pode ser imaginada como dizendo: se "ligando" quem está no slot 1 de  r , a  é verdadeiro e "ligando" quem está no slot  b  de  r , b  é verdadeiro então  vl  está verdadeiro (esta idéia vem de imaginar isto implementado em um circuito digital)  r1  afirma que quem está no slot 1 de  r  (a afirmação correspondente) é verdadeiro , análogamente para  r2 Provavelmente  a e b  não apareçam de outras formas Há fórmulas capciosas ou sem uso planejado (portanto há teoremas sem utilidade planejada) Alguns , talvez todos , usos capciosos podem receber algum sentido eventualmente , talvez um exercício filosófico permita dar sentido , frequentemente complexo , difícil de entender , a todas as fórmulas verdadeiras Se variáveis são para dar nome a nós de diagramas pode haver sistemas formais em que  R(_,...,_)  não é satisfeita por n-uplas , mas é relação do tipo descrito aqui e conjunções são equivalentes às composições dos diagramas determinados Então uniría-se esta generalização de teoria das categorias com lógica Para esta finalidade o sistema formal teria que ter relações -------- Para falar sobre a hipótese de  a  ser verdadeiro usa-se fórmulas envolvendo as fórmulas do subsistema de fórmulas da forma  a--->b  a--->b  pode ser visto como uma versão de  b  para a qual há uma versão de  a  verdadeira , partes de  b  que coincidam com partes de  a  já sendo imaginadas como as correspondentes nesta versão de  a Há uma idéia de uma fórmula falar algo dentro do sistema e ser usada para falar algo fora do sistema , dentro do sistema fala sobre as variáveis que aparecem nela , fora as variáveis podem receber significados , fala fora do sistema através do que fala dentro do sistema
0 notes
asdfgdfme · 11 years ago
Text
A imagem mais abaixo que parece um rosto eu postei apenas porque foi um resultado interessante e nada mais
0 notes
asdfgdfme · 12 years ago
Text
Talvez achem interessante:
Pictures as Complex Systems
Ulf Grenander
0 notes
asdfgdfme · 12 years ago
Photo
Tumblr media
0 notes
asdfgdfme · 12 years ago
Text
Tentando descrever algumas idéias informalmente Talvez vou corrigir detalhes algumas vezes Quero descrever uma idéia de relação entre um conjunto de elementos , quando escrever relação quero dizer este tipo de relação , quando escrever relação convencional quero dizer algo determinado por uma sequencia de conjuntos A1,...,An  e um subconjunto de  A1 X ... X An  de n-uplas Uma relação seria algo semelhante a morfismo em teoria das categorias , só vale entre as coisas que relaciona , e talvez possa generalizar eles , no lugar de domínio e contradomínio estão os elementos atingidos pela relação , aqueles que ela relaciona , a relação não determina uma ordem entre os elementos que relaciona , a não ser que isto faça parte do relacionamento que uma relação especifica faz As coisas relacionadas por uma relação são seus termos É a mesma coisa dizer que certos elementos são atingidos por uma relação , que são termos dela , que são relacionados pela relação ou que a relação é entre estes elementos Não há uma ordem no conjunto de termos , é apenas um conjunto Um mesmo elemento pode ser termo , ser atingido , mais de uma vez de uma relação , pode-se usar como definição de termo da relação a relação entre elemento atingido pela relação e a relação , relação que existe em virtude de o elemento ser termo da relação (descrevendo o conceito de relação através do conceito de relação) , ou supor que existe uma outra relação onde correspondendo aos elementos que são termo mais de uma vez há outros relacionados apropriadamente com eles , não vou supor alguma forma específica de lidar com isto Posso usar a palavra termo tanto me referindo ao elemento quanto me referindo a algo que o identifica como um termo específico de uma relação , conforme o contexto Relações também são coisas relacionadas por relações , as relações formam um subconjunto das coisas Pode ser possível classificar parte das relações em tipos , um tipo pode ser subtipo de outros tipos , uma relação pode ter um conjunto de tipos mesmo sem relações de subtipo entre eles Alguns tipos de relações entre dois elementos podemos ver mais ou menos como relações de dependencia , isto seria um tipo Podem haver tipos diferentes (subtipos) de dependencia Um exemplo de tipo de dependencia é a dependencia que um conjunto tem de seus elementos , para cada elemento de um conjunto existe a relação de pertinencia que atinge ele e o conjunto Uma relação entre relações pode envolver uma correspondência entre termos delas , podemos pensar nisto como esta relação dependendo de relações entre termos correspondentes , provavelmente em cada situação haverá relações mais naturais para este papel Uma relação de dependencia (sempre entre duas relações) também pode depender de uma correspondência entre termos delas Uma relação entre relações também pode depender de uma correspondência apenas parcial entre termos , ou seja , para cada par de relações que esta relação relaciona um subconjunto dos termos delas está na correspondência , talvez todos os termos de uma ou mais delas estejam na correspondência Cada termo tem no máximo um termo correspondente em cada relação relacionada Cada ocorrencia separada de um elemento como termo tem separadamente seus termos correspondentes Vou usar "rcct" como abreviação de "relação com correspondencia de termos" , "rccpt" como abreviação de "relação com correspondencia parcial de termos" Uma  rcct  é caso particular de  rccpt Uma  dcct  é uma relação de dependência que é uma  rcct Se uma relação depende com correspondência de termos de uma outra ,  esta outra é um pouco como uma n-upla pertencente à primeira (acho que esta maneira de ver pode ser melhor ou pior dependendo do caso) Então temos uma maneira de ver as relações convencionais como relações do tipo descrito aqui E para raciocinar sobre relações pode ser útil imaginar relações convencionais A identidade das coisas vem de sua situação na rede de relações , intuitivamente de forma pouco precisa podemos imaginar as coisas como construidas à partir das coisas relacionadas com elas Se imaginarmos uma relação como construída à partir de relações com quem mantém  rcct  então podemos imaginar esta construção como construída à partir de construções dos termos dela à partir dos termos correspondentes Coisas em geral podem ter aspectos de relação , um aspecto de relação é uma relação Uma coisa pode ter vários aspectos de relação Uma empresa tem um aspecto de relação entre seus funcionários Um funcionário pode ter um aspecto de relação entre sua empresa e outras e/ou entre funcionários de sua empresa Uma coisa que intuitivamente é feita de outras , como uma empresa feita de empregados , entre outras coisas , é mais intuitivamente vista como relação entre as coisas de que é feita Isto lembra a idéia descrita mais abaixo de que uma relação pode ser vista como construíndo algo ou como sendo uma construção feita à partir das coisas que relaciona e que em alguns casos generaliza elas Em vez da noção de parte quero usar a noção de elemento relacionado de qualquer maneira Em vez de conjuntos com estrutura , qualquer coisa tem sua estrutura à partir de sua situação na rede de relações Dada uma relação de similaridade , em vez do conjunto de n-uplas indicando aspectos similares existe o relacionamento da relação de similaridade com outras relações por  rcct Se a situação de um elemento na rede de relações é similar ao produto cartesiano das situações , ou parte delas , de outros elementos podemos vê-lo um pouco como produto carteziano destes elemento Se a situação de um elemento na rede de relações é similar a parte da situação de outro elemento podemos ver este elemento um pouco como parte do outro Primeira definição de diagrama , que talvez em certo sentido inclui todas: Um diagrama é uma representaçao de relações existentes entre coisas existentes , as relações e coisas podem ocorrer representadas várias vezes no diagrama , representações de uma mesma relação obviamente sempre entre representações , talvez separadas , dos mesmos elementos , a algo que aparece representado num diagrama vou chamar de ocorrência disto no diagrama À uma representação de relação ou elemento relacionado em um diagrama vou chamar de ocorrencia da relação ou do elemento Seja para cada ocorrencia relação no diagrama o conjunto de ocorrencias dos elementos que são seus termos e que estão representadas como termos desta ocorrencia. A definição de diagrama não coloca nenhuma restrição às intersecções destes conjuntos. Ocorrencias diferentes de um mesmo elemento não produzem intersecção.Para que exista a possibilidade de uma intersecção ser não vazia é preciso que a intersecção dos conjuntos correspondentes contendo os elementos que ocorrem neles seja não vazia Então um diagrama tem dois conjuntos disjuntos de ocorrências , ocorrênciasde relações e ocorrências de coisas relacionadas por eles , aos elementos do segundo conjunto vou chamar de nós do diagrama , um elemento que é relação pode ter ocorrencias como relacionado e outras como relacionando , mas uma mesma ocorrencia em apenas uma das situações Digo "ocorrência de alguma coisa" quando preciso de representantes separados dela , por exemplo ocorrências de relações e de coisas relacionadas em diagramas Acho que considerando morfismos em teoria das categorias como relações então um diagrama de morfismos é um diagrama conforme esta definição Vou supor que há uma operação de composição como descrita abaixo , não é uma propriedade intrínseca das relações , podem haver operações diferentes que satisfazem a definição abaixo Uma operação de composição determina para cada subconjunto de nós de um diagrama , uma relação que tem como termos os elementos que ocorrem neste subconjunto , cada um destes elementos é termo desta relação resultante tantas vezes quantas for nó do diagrama Provavelmente a relação resultante é implicada logicamente pelo que é representado no diagrama Esta operação é parcial , não precisa estar definida para qualquer subconjunto de nós de qualquer diagrama Vou chamar de composição de um diagrama a composição determinada pelo diagrama e todos os seus nós As ligações por termos em comum entre relações representadas num diagrama podem ser diferentes das existentes entre as próprias relações porque pode haver ocorrências diferentes de um mesmo elemento num diagrama , mas o diagrama pode ser "dobrado" de modo que ocorrências de cada mesma relação e cada mesmo elemento se sobreponham a aquilo de que são ocorrencia Dado um conjunto de conjuntos de ocorrências de relações , fica determinadoo diagrama que liga por termos em comum as ocorrências de relações em cada um destes conjuntos da mesma forma que as próprias relações estão ligadas , e ligações entre ocorrências de relações em conjuntos diferentes são indiretas , através das intersecções Um subconjunto das ocorrenicas de relações num diagrama determina o subconjunto de ocorrências de elementos representadas como termos delas , o que determina uma composição Então , um diagrama e um subconjunto das ocorrencias de relações pode determinar uma relação Podemos ver todas as coisas como fazendo relações entre outras coisas e imaginar que a forma como as coisas relacionam coisas é parecido com o relacionamento entre relações Na definição de diagrama podemos imaginar os nós também como relações e o diagrama como um conjunto de conjuntos onde os termos estão nas intersecções quando as relações no diagrama estão ligadas por termos em comum Um conjunto de conjuntos de elementos pode ser generalizado para diagrama se relação entre um conjunto de elementos for uma generalização deste conjunto Então uma segunda definição de diagrama seria um conjunto de conjuntos de ocorrências de elementos , imaginando o relacionamento entre eles semelhante ao relacionamento entre relações Em certo sentido , a primeira definição de diagrama tem esta como caso particular Nesta segunda definição de diagrama considero todas as ocorrências representadas nele como nós do diagrama Um diagrama aponta parte do relacionamento entre os elementos que ocorrem nele , e podem existir elementos "menores" entre os quais vale apenas este relacionamento , podemos pensar no diagrama como determinando eles Vou usar a palavra "menor" no sentido de elementos sobre os quais consideramos um relacionamento que é (similar a) parte do relacionamento do outro , ou de relação contendo menos informação Alem disso , pode haver um elemento menor assim para cada ocorrência separada de um mesmo elemento num diagrama , elementos corespondentes a ocorrências diferentes provavelmente serão diferentes Intuitivamente , um diagrama pequeno determina elementos grandes entre os quais valem muitas relações , o oposto para diagramas grandes , mas para entender as coisas precisamos de diagramas mostrando poucas relações entre vários subconjuntos dos muitos elementos representados Segunda definição de composição , acompanhando a segunda definição dediagrama: para cada subconjunto de nós de um diagrama pode ficar determinado um elemento composição , e um relacionamento entre estes elementos que pode ser visto como extendendo o relacionamento que o diagrama aponta entre seus nós a subconjuntos de seus nós , se um destes subconjuntos tem só um elemento o elemento composição correspondente é o elemento menor mencionado acima (elementos menores que os elementos que ocorrem no diagrama , um para cada ocorrencia , entre os quais vale apenas o relacionamento (similar ao) apontado pelo diagrama) Nas duas definições de diagrama , aumentando um diagrama o relacionamento que o diagrama aumentado aponta entre os nós originais é menor que o original , em particular se o diagrama (na segunda definição) consiste apenas de um conjunto , a contextualizaçao neste conjunto aponta uma parte especifica do relacionamento entre os elementos que ocorrem nele , tanto mais especifica quanto maior o conjunto A descriçao de relação coloca relação e termo numa situação simétrica A ligação entre relações por termos em comum é simétrica à ligação entre elementos por relações que os tem simultaneamente como termos Uma relação relaciona vários elementos e um elemento é atingido por várias relações A primeira definição de diagrama também coloca relação e termo numa situação simétrica Intuitivamente um elemento é atingido por muitas relações e uma relação tem poucos termos Intuitivamente , sempre é possível encontrar ou definir uma nova relação que atinge um elemento , mas os termos de uma relação são fixos Mas , pode-se supor que normalmente usamos apenas parte dos termos de uma relação (uma restrição da relação) e que pode-se encontrar ou definir novos termos (uma extenção da relação) Uma situação que não parece ter simétrica é que relações podem ser relacionadas por relações , as relações formam um subconjunto do conjunto de elementos , mas acho que esta assimetria não impede que haja o simétrico de alguns conceitos Algumas  rcct  podem ser "extendidas" à extenções das relações que relacionam ,mantendo o mesmo tipo Dada uma relação e uma  rcct  que a tem como termo , para cada extenção da relação podem haver extenções de outras relações nesta  rcct  de modo que haja uma outra  rcct  do mesmo tipo cuja correspondencia de termos extende a da primeira  rcct Parte do relacionamento por  rcct  de uma relação pode se extender a extenções dela Parte do relacionamento por  rcct  de um conjunto de relações pode se extender a uma extenção comum delas A situação de uma relação na rede de relações provavelmente envolve em particular vários tipos de  rcct Dada uma  rccpt , um termo de uma das relações pode ser visto um pouco como conjunto com estrutura , e termos correspondentes em outras um pouco como elementos ou subestruturas deste conjunto , e as relações relacionadas como apontando semelhanças de subestruturas Se um diagrama tem apenas um conjunto , quanto maior for menor é o relacionamento que faz entre os elementos de cada um de seus subconjuntos(contextualização) Quanto maior um diagrama , menor o relacionamento que determina entre os elementos de cada subconjunto do conjunto de elementos que ocorre nele Uma forma intuitiva de pensar numa relação é emparelhar , sobrepor , projetar uns sobre os outros , aspectos similares dos termos dela , para isto cada elemento atingido pela relação (e cada vez que ele é atingido) precisa ser visto de certo ponto de vista , ou , mais precisamente , precisam ser colocados na posição relativa adequada para que estes aspectos similares se sobreponham Pontos de vista diferentes de um mesmo elemento podem ser emparelhados , a relação correspondente tem este elemento como termo o mesmo número devezes A correspondência num emparelhamento não precisa ser "1 a 1" , pode ser como um subconjunto de  A1 X ... X An Assim como não é sempre possível recuperar um subconjunto de  A1 X ... X An  à partir de "restrições" dele a subconjuntos de {A1,...,An} cuja união é {A1,...,An} , não é sempre possível recuperar um emparelhamento à partir de restrições dele , e não é sempre possível recuperar uma relação à partir de restrições dela Quando digo emparelhamento apontado por uma relação quero dizer entre partes similares em certo sentido ou tendo algum significado e não um emparelhamento qualquer Estou usando a idéia de emparelhamentos apenas como maneira intuitiva de ver relações , mas defino abaixo algumas coisas a partir da idéia de emparelhamento , suponho que as coisas definidas existem independentemente disto e que esta forma de definir também é uma forma intuitiva de ver estas coisas Talvez qualquer relação possa ser descrita desta maneira Por exemplo , se pessoa B é chefe de pessoa A então ambos fazem parte de um processo no qual podemos emparelhar as instruções de pessoa B com as ações de pessoa A Quando digo processo quero dizer , por exemplo , o processo da prática de teatro pela humanidade , o processo correspondente ao desenvolvimento e uso de certo tipo de componente eletrônico Computador , por exemplo , pode significar um conceito de que computadores específicos são exemplo , mas poderia significar o processo do desenvolvimento , uso , infuência nos hábitos , etc de computadores pela humanidade Um processo não precisa envolver pessoas , por exemplo , a neve Até um objeto físico específico pode ser visto como um processo no qual um conjunto de partículas elementares se mantém em certa configuração macroscópica graças a processos microscópicos Eu considero coisas abstratas , como numeros por exemplo , como processos , o numero 2 por exemplo é o papel que a existência de coisas onde se pode identificar duas partes tem na realidade , mesmo não havendo sempre uma relação de causa e efeito entre uma e outra manifestação do numero 2 considero elas ligadas de alguma forma É mais intuitivo imaginar emparelhamentos de partes de coisas geometricas do que de partes ou aspectos de processos Se podemos extender um conjunto de emparelhamentos a um único emparelhamento envolvendo todos os elementos envolvidos isto pode ser visto como um emparelhamento de emparelhamentos , e temos uma maneira de ver elementos e relações de uma mesma forma Um emparelhamento tem uma estrutura que generaliza as estruturas das partes emparelhadas , e pode ser visto como determinando um elemento com esta estrutura Um emparelhamento também pode ser visto como determinando um elemento maior que liga os elementos identificando as partes emparelhadas Uma maneira mais geral de imaginar relação é um conjunto de emparelhamentos entre partes similares , cada emparelhamento envolvendo um subconjunto dos termos Então haveria uma operação de união de relações , uma relação poderia acumular a informação de um conjunto de outras entre os mesmos elementos Uma relação pode ser vista como sendo ou determinando um elemento obtido identificando partes emparelhadas (se houver muitos emparelhamentos a "montagem" pode ser complexa) , este elemento pode ser visto como uma generalização comum dos termos da relação Um emparelhamento maior entre os mesmos elementos é um que contém mais informação , emparelha partes maiores coincidindo nas originais Se para cada emparelhamento apontado por uma relação  R1  há um emparelhamento maior apontado por  R2  então  R2  é maior que  R1  (em particular , o número de emparelhamentos apontados por  R2  é maior ou igual que o correspondente em  R1) Uma relação maior ou igual entre mesmos termos é uma relação que inclui toda informação de emparelhamento da primeira Um elemento  b  é  menor ou igual que um elemento  a  se suas propriedades de emparelhamento são um subconjunto das de  a  (descrição mais precisa abaixo) Para definir relação menor ou igual há o problema de um elemento poder ser termo mais de uma vez , e acho que de qualquer forma é bom considerar um tipo de  rcct  que relaciona uma relação com uma relação menor Então , um elemento  b  é menor que um elemento  a  se cada relação de que  b  é termo está relacionada com outra por uma  rcct  deste tipo onde   a   e   b   são termos correspondentes Parece que uma relação ser menor que outra entre outro conjunto de termos depende de correspondencia entre os termos Uma relação que tem um elemento várias vezes como termo ser menor que outra entre os mesmos termos talvez dependa de uma correspondencia também , vou deixar isto de lado agora Temos uma operação de união de relações que resulta na relação que aponta todos os emparelhamentos apontados pelas relações unidas Mas , dado um conjunto de emparelhamentos entre os mesmos elementos pode ser que estes emparelhamentos possam ser unidos resultando num único emparelhamento (isto depende das propriedades exigidas de um emparelhamento) A operação de união de relações não leva em conta se uniões de emparelhamentos são ou não também emparelhamentos , pois ela une conjuntos e não os próprios emparelhamentos A possibilidade de combinar um conjunto de emparelhamentos formando um único é uma  rcct  entre as relações que apontam estes emparelhamentos A restrição de uma relação a um subconjunto de seus termos é aquela que contem a informaçao da relação original sobre este subconjunto de termos , talvez isto não seja intrínseco das relações e dependa de definição , mas vendo as relações como conjuntos de emparelhamentos vejo a restrição de uma relação a um subconjunto de seus termos como o conjunto de restrições apropriado dos emparelhamentos apontados pela relação Dizer que  R1  é restrição de  R2  é o mesmo que dizer que  R2  é extenção de  R1 Vou usar a notação  R|A  para restrição da relação  R  ao conjunto  A  de elementos , vou supor que se um elemento de  A  é termo de  R  mais de uma vez então é termo de R|A  o mesmo número de vezes Seja  Ru  a relação com toda informação de relacionamento usada entre os elementos do conjunto universo usado Então só usamos relações menores ou iguais que restrições de  Ru As relações menores ou iguais que alguma restrição de  Ru  são as relações usadas Usamos também uma relação de referencia entre todos os elementos do conjunto universo , menor que  Ru Vou dizer que uma relação faz parte do relacionamento de referencia se é menor ou igual que alguma restrição da relação de referecia Seja  Rr  a relação de referencia Então se  R <ou= Ru|B  então  R  está entre as relações usadas , e se  R <ou= Rr|B  ,  R  faz parte do relacionamento de referencia Para qualquer  R  , seja  R*  a relação que aponta o subconjunto dos emparelhamentos apontados por  R  que envolvem todos os termos de  R  (e não apenas parte), se não houver relações "vazias"  R*  nem sempre existirá (_* será operação parcial) , se um elemento é termo mais de uma vez de  R  o mesmo vale para  R* Então  R* <ou= R  (se  R*  existe) Seja  R(A) = (Rr|A)*    (pode não existir) Se  A  está contido em  B  então    R(B)|A  <ou=  R(A) Isto pode ser visto como contextualizaçao Talvez também seria possível usar  R(A)  simplesmente igual a  Rr|A  , então não há contextualização A definição de  R(A)  é usada mais abaixo Um diagrama (suponho que é finito) é conexo se para quaisquer dois nós há uma sequencia de nós tendo eles como extremos e quaisquer dois nós consecutivos são representados como termos de alguma mesma ocorrencia de relação ou pertencem a algum mesmo conjunto pertencente ao diagrama , conforme o tipo de diagrama (primeira ou segunda definição) As partes conexas maximais de um diagrama são suas componentes conexas Um emparelhamento apontado por uma relação não precisa envolver todos os seus termos Extenção comum de um conjunto de relações é uma mesma relação que é extenção de todas elas O mesmo para emparelhamentos Mas é mais difícil existir extenção comum de emparelhamentos do que de relações porque uma relação pode apontar vários emparelhamentos Uma generalização de extenção comum é através da primeira definição de diagrama , a composição do diagrama é menor que esta extenção comum generalizada Definí mais acima composição de um diagrama como a composição que usa todos os nós do diagrama , quando digo composição de diagramas é isto que quero dizer , e não alguma operação envolvendo vários diagramas A composição de diagramas conforme a primeira definição provavelmente terá as propriedades: A composição correspondente a um subconjunto de nós de um diagrama é a restrição da composição do diagrama a estes termos A composição de diagramas é distributiva sobre a união de relações , ou seja , se uma relação que ocorre no diagrama é união de um conjunto de relações então a relação resultante da composição é união das composições dos diagramas obtidos substituindo esta ocorrencia desta relação por ocorrencias de cada uma das relações que unidas resultam nela Se na aplicação da propriedade distributiva parte das composições não estiver definida elas podem ser desconsideradas , apenas se nenhuma delas estiver definida a composição do diagrama não está definida Se uma relação que ocorre no diagrama não diz nada sobre um subconjunto de seus termos , ou em termos de emparelhamentos , nenhum emparelhamento que aponta envolve estes elementos , então ocorrencias dela podem ser substituidas por ocorrencias da restrição dela aos termos relevantes , desde que nenhum nó seja eliminado do diagrama A composição de um diagrama contendo apenas ocorrencias de relações apontando cada uma um único emparelhamento envolvendo todos os termos dela é , se existir , a relação que aponta as extenções comuns dos emparelhamentos em cada componente conexa do diagrama , se em uma componente conexa esta extenção comum não existir a composição deste diagrama não está definida Segunda definição de diagrama: conjunto de conjuntos de ocorrências de elementos , cada ocorrência é um nó do diagrama Dado um conjunto  A  de ocorrencias , seja |A| o conjunto de elementos que ocorrem em  A Um diagrama conforme a segunda definição pode ser transformado num diagrama conforme a primeira definição considerando cada conjunto  A  pertencente ao diagrama como ocorrência da relação  R(|A|) , estas ocorrências de relações ligadas no diagrama conforme as intersecções destes conjuntos Uma generalização de uma relação ser caracterizada pelo conjunto de emparelhamentos que aponta é ser caracterizada pelos seus relacionamentos por  rcct , talvez apenas certos tipos de  rcct  deveriam ser considerados Estas duas formas de ver podem ser úteis Se os elementos que ocorrem num diagrama são símbolos (como por exemplo , palavras) e o relacionamento de referência entre eles está relacionado aos possíveis significados que podem assumir , então ao apontar uma parte especifica do relacionamento entre eles pode-se reduzir as possibilidades de significado simultaneo das ocorrências de símbolos no diagrama , isto é como ir do abstrato para o específico Pode ocorrer algo oposto , ao apontar apenas parte do relacionamento entre os elementos que ocorrem num diagrama pode-se estar abstraindo , indo do específico ao abstrato Um conjunto de elementos abstratos podem ter significado dependente , eles abstraem um conjunto de elementos com certas propriedades e relacionados de certa forma , isto é uma relação entre os elementos abstratos A rede de relações pode incluir (relacionar) os elementos que os diagramas sao , as ocorrencias , etc Para alguns tipos de  rcct  com dois termos que podem determinar uma ordem no par de relações pode ser definida uma composição semelhante à composição de funções , o resultado da composição sendo uma  rcct  do mesmo tipo Uma generalização disto seria um tipo de  rcct  tal que se todos os elementos que ocorrem como nós de um diagrama (primeira definição) são relações e o relacionamento representado no diagrama é através de  rcct  deste tipo , então as composições envolvendo o diagrama resultam em  rcct  deste mesmo tipo Para relacionar um conjunto de coisas de forma intuitiva num diagrama pode-se colocar para cada uma no diagrama um conjunto com ocorrências de seus aspectos relevantes e para representar as relações conjuntos com as ocorrências (já presentes) de aspectos apropriados das coisas relacionadas indicando o papel das coisas em cada relação (é preciso definir o relacionamento de referência e composição apropriadamente) Uma coisa que é feita de peças , por exemplo , um circuito eletrônico , pode ser vista como um diagrama segundo a primeira definição , onde cada peça , por exemplo um transistor , é vista como uma ocorrência do tipo de peça , podemos descrever a maneira como as peças estão conectadas num circuito através de ocorrencias de algum conjunto de relações entre os tipos de peças , que descrevem as possíveis conexões Certas formas de ocorrência de transistors em circuitos podem ser vistas como determinando um tipo mais específico de componente , apesar de fisicamente ser igual , uma forma específica de uso de um componente é um processo mais específico que o processo que o componente é
0 notes
asdfgdfme · 12 years ago
Text
--  Usa a linguagem  lua5  standalone
--  Não lembro os detalhes , mas a ideia é , a cor de cada ponto é somatório
--  de  cor(t)  , t  percorrendo a parte real de todos os ramos de uma
--  função complexa  f(x + yi)  ( (x,y) = (0,0) no centro da tela )  ,
--  (R,G,B) = cor(t)  uma funçao periodica , portanto , a imagem é como uma
--  soma de uma onda com ela própria
--  Ha a opçao de usar modulo ou angulo em vez da parte real
--  estou usando  lua  via wine no linux e nao lembro em qual diretorio sai
--  a imagem (imagem.bmp) no windows
--  Pode usar , copiar e modificar
--  Não tenho certeza se os cálculos com números complexos estão corretos
--  Salve como progr.lua
--  Para alterar a imagem edite a parte final (por exemplo , deixe um dos
--  exemplos que ha ali descomentados (linhas que começam com "--" sao
--  consideradas comentarios e nao sao executadas)
--  Digite  dofile("caminho\progr.lua") e enter na janela da versao
--  standalone (acho que lua5.1.exe) e espere o cursor ">" voltar
--  Dependendo da resolução (na variável  res  mais abaixo)  e da fórmula
--  usada pode demorar um pouco para terminar a imagem
wrap = coroutine.wrap
yield = coroutine.yield
write = io.write
sqrt = math.sqrt
mod = math.mod
atan = math.atan
sin = math.sin
cos = math.cos
Dpi = 8*atan(1)
if  math.fmod  then  function modulo(a,b)  return( math.fmod( math.fmod(a,b) + b , b ) )  end  -- agora há o operador " % "
else                 function modulo(a,b)  return( math. mod( math. mod(a,b) + b , b ) )  end
    end
function atn(t)
    return(atan(t)/Dpi)
    end
seno =
function(o)
    return(sin(Dpi*o))
    end
coseno =
function(o)
    return(cos(Dpi*o))
    end
function tracos(o,n)
    return  (.5 + .5*seno(o))^n
    end
function tracod(o,e)
    if  (1-e) < modulo(o,1)  then  return 1  end
    return 0
    end
div=
function(n,d)
    return(math.floor(n/d))
    end
byte=
function(n)
    n = math.floor(.5+n)    if  n < 0  then  n = 0  end    if  255 < n  then  n = 255  end
    if  (n == 1 and n == 2) or n ~= n  then  n = 0  end  -- verificar se é indefinido (0/0)
    return string.char(n)
    end
doisbytes=
function(n)
    local nb=0
    local qb=""
    local nr=n
    while nb<2 do
        qb=qb .. byte(mod(nr,256))
        nr=div(nr,256)
        nb=nb+1
        end
    return(qb)
    end
quatrobytes=
function(n)
    local nb=0
    local qb=""
    local nr=n
    while nb<4 do
        qb=qb .. byte(mod(nr,256))
        nr=div(nr,256)
        nb=nb+1
        end
    return(qb)
    end
function comprimento(a)
    local r = 0
    for  i , e  in  a  do  r = r + 1  end
    return(r)
    end
function ang(y,x)
    local r
    if  y ~= 0 or x ~= 0  then  r = atn(y/x)  else  r = 0  end
    if  x < 0  then
        if  0 < y  then  r = r + .5
        else             r = r - .5
            end
        end
    return(r)
    end
cmplxmt = {}  -- metetable para números complexos
-- como há funções que são multivaloradas , um complexo aqui é  z  tal que o loop
--  for  rmz in wrap(z[1]) do  ...  end
--  percorre os pares  { o , m }
--  as operações simplesmente retornam  z  que contém os resultados de todas as combinações de argumentos , talvez com repetições
function c(x,y,dt)
    local o = ang(y,x)    if  o == 1  and  o == 2  then  o = 0  end
    local m = sqrt(x*x + y*y)
   local f
    if  dt  then
        f = function()
            while 1 do
                for  i,d in pairs(dt)  do    yield({o+d,m})    end
                yield(nil)
                end
            end
    else
        f = function()
            while 1 do    yield({o,m})  yield(nil)    end
            end    end
    local r = { f }    setmetatable( r , cmplxmt )
    return r
    end
function wrtcpx(tfz)
    local cz = wrap(tfz[1])
    for  z in cz  do
        write(z[1],"  ",z[2],"\n")
        end
    end
function cadd(fz1,fz2)
    local f = function()
    local cz1 = wrap(fz1[1])
    local cz2 = wrap(fz2[1])
    local  z1 , z2 , o , x , y , r1 , r2
    while 1 do
        for  z1 in cz1 do    for  z2 in cz2  do
            o = z2[1] - z1[1]
            x = z1[2] + z2[2]*coseno(o)    y = z2[2]*seno(o)
            r1 = z1[1] + ang(y,x)      r2 = sqrt(x*x + y*y)
            yield( { r1 , r2 } )
            end  end
            yield(nil)
            end
        end
    r = { f }    setmetatable( r , cmplxmt )
    return r
    end
function csub(fz1,fz2)
    local f = function()
        local cz1 = wrap(fz1[1])
        local cz2 = wrap(fz2[1])
        local  z1 , z2 , o , x , y
        while 1 do
            for  z1 in cz1  do    for  z2 in cz2  do
                o = z2[1] - z1[1] + .5
                x = z1[2] + z2[2]*coseno(o)    y = z2[2]*seno(o)
                yield( { z1[1] + ang(y,x) , sqrt(x*x + y*y) } )
                end  end
            yield(nil)
            end
        end
    r = { f }    setmetatable( r , cmplxmt )
    return r
    end
function cmul(fz1,fz2)
    local f = function()
        local cz1 = wrap(fz1[1])
        local cz2 = wrap(fz2[1])
        local  z1 , z2
        while 1 do
            for  z1 in cz1  do    for  z2 in cz2  do
                yield( { z1[1]+z2[1] , z1[2]*z2[2] } )
                end  end
            yield(nil)
            end
        end
    r = { f }    setmetatable( r , cmplxmt )
    return r
    end
function cpow(fz,n,a,b)
    local rm1 , rm2
    if  b  then  rm1 = a  rm2 = b  else  rm1 = 0  if  a  then  rm2 = a-1  else  rm2 = 0  end  end
    local f = function()
        local cz = wrap(fz[1])
        local  z
        while 1 do
            for  z in  cz  do
                for  rm = rm1 , rm2  do    yield( { (rm+z[1])*n , z[2]^n } )    end
                end
            yield(nil)
            end
         end
    r = { f }    setmetatable( r , cmplxmt )
    return r
    end
function craiz(fz,n)
    local f = function()
        local cz = wrap(fz[1])
        local  z , nr
        while 1 do
            for  z in cz  do
                for  nr = 0 , n-1  do  yield( { (nr+z[1])/n , z[2]^(1/n) } )  end
                end
            yield(nil)
            end
        end
    r = { f }    setmetatable( r , cmplxmt )
    return r
    end
function clog(fz)
    local f = function()
        local cz = wrap(fz[1])
        local  z , nr
        while 1 do
            for  z in cz  do
                yield( { Dpi*(z[1]+0) , math.log(z[2]) } )
                end
            yield(nil)
        end
        end
    r = { f }    setmetatable( r , cmplxmt )
    return r
    end
cmplxmt.__add = cadd
cmplxmt.__sub = csub
cmplxmt.__mul = cmul
cmplxmt.__pow = cpow
function X(z)
    local cz = wrap(z[1])
    return function()
        local zi = cz()
        if  zi  then  return  zi[2]*coseno(zi[1])  end
        return nil
        end
    end
function Y(z)
    local cz = wrap(z[1])
    return function()
        local zi = cz()
        if  zi  then  return  zi[2]*seno(zi[1])  end
        return nil
        end
    end
function O(z)
    local cz = wrap(z[1])
    return function()
        local zi = cz()
        if  zi  then  return  zi[1]  end
        return nil
        end
    end
function M(z)
    local cz = wrap(z[1])
    return function()
        local zi = cz()
        if  zi  then  return  zi[2]  end
        return nil
        end
    end
function espiral(z)
    local cz = wrap(z[1])
    return function()
        local zi = cz()
        if  zi  then  return  3*zi[1]+zi[2]  end
        return nil
        end
    end
function normcor(r,g,b)
    local m = sqrt(r*r+g*g+b*b)
    return  r/m , g/m , b/m
    end
function maximoum(v)
    return v/(v+1)
    end
function cora(z,p1,p2)                      --  p1 maior distancia entre faixas menor , p2 maior faixas mais estreitas
    if  not p1  then  p1 = 1  end
    if  not p2  then  p2 = 1  end
    local nrms = 0
    local r , g , b       r = 0  g = 0  b = 0
    for  xi in P(z)  do        xi = xi * p1
        nrms = nrms + 1
        r = r + tracos(xi,2^p2)    g = g + tracos(xi-1/3,2^p2)    b = b + tracos(xi-2/3,2^p2)
        end
    return  r/nrms , g/nrms , b/nrms
    end
function corb(z,p1,p2)                      --  p1 maior distancia entre faixas menor , p2 maior faixas mais estreitas , use esta para p2 maior que mais ou menos 8
    if  not p1  then  p1 = 1  end
    if  not p2  then  p2 = 8  end
    local r , g , b       r = 0  g = 0  b = 0
    for  xi in P(z)  do        xi = xi * p1
        r = r + tracos(xi,2^p2)    g = g + tracos(xi-1/3,2^p2)    b = b + tracos(xi-2/3,2^p2)
        end
    return  r/2 , g/2 , b/2
    end
function corc(z,p1,p2)                      --  p1 maior distancia entre faixas menor , 0 < p2 < 1 , p2 maior faixas mais largas
    if  not p1  then  p1 = 1  end
    if  not p2  then  p2 = .1  end
    local nrms = 0
    local r , g , b       r = 0  g = 0  b = 0
    for  xi in P(z)  do        xi = xi * p1
        nrms = nrms + 1
        r = r + tracod(xi,p2)    g = g + tracod(xi-1/3,p2)    b = b + tracod(xi-2/3,p2)
        end
    return  r/2 , g/2 , b/2
    end
function corbw(z,p1)                      --  p1 maior distancia entre faixas menor  ,  preto e branco
    if  not p1  then  p1 = 1  end
    local nrms = 0
    local cor = 0     local cora = 0    local corb = 0
    for  xi in P(z)  do        xi = xi * p1
        nrms = nrms + 1
        cora = cora + coseno(xi)    corb = corb + seno(xi)
        end
    cora = cora/nrms  corb = corb/nrms  cor = sqrt(cora*cora + corb*corb)
    return cor , cor , cor
    end
function corcl(z,p1)                      --  p1 maior distancia entre faixas menor
    if  not p1  then  p1 = 1  end
    local nrms = 0
    local cor = 0     local cora = 0    local corb = 0
    for  xi in P(z)  do        xi = xi * p1
        nrms = nrms + 1
        cora = cora + coseno(xi)    corb = corb + seno(xi)
        end
        mdl = sqrt(cora*cora + corb*corb)/nrms  angulo = ang(corb,cora)
        r = mdl * tracos(angulo,1)    g = mdl * tracos(angulo-1/3,1)    b = mdl * tracos(angulo-2/3,1)
    return  r , g , b
    end
-- resolução da imagem , usar multiplos de quatro , maior demora mais
res = 256    rx = res  ry = res
tamanho = 54 + 3*rx*ry
arq = io.open("imagem.bmp","wb")
arq:write("BM" .. quatrobytes(tamanho) .. doisbytes(0) .. doisbytes(0) .. quatrobytes(54) ..
         quatrobytes(40) .. quatrobytes(rx) .. quatrobytes(ry) ..
         doisbytes(1) .. doisbytes(24) ..
         quatrobytes(0) .. quatrobytes(0) .. quatrobytes(0) .. quatrobytes(0) .. quatrobytes(0) .. quatrobytes(0))
P = X                  -- descomentar (remover o "--" no início da linha) um dos quatro
-------- ou
-- P = O
-------- ou
-- P = M
-------- ou
-- P = espiral
for  iy = -ry/2 ,ry/2-1 do  for  ix = -rx/2 , rx/2-1  do
    x = 2*2*ix/rx    y = 2*2*iy/ry
    z = c( 2*x , 2*y )
    fz = craiz(cpow(z,3)+c(2^4,0),3)          -- descomentar um dos exemplos
    r , g , b  =  corcl(fz,4)
-------- ou
--    z = c( 2*x , 2*y )  -- aqui fazer  P = espiral  (acima)
--    fz = craiz(cpow(z,3)+c(2^4,0),3) + c(2,0)
--    r , g , b  =  corcl(fz,3)
-------- ou
--    z = c( x , y )
--    fz = z * craiz(c(1,0),5)
--    r , g , b  =  corcl(fz,4)
-------- ou
--    z = c( x , y )
--    fz = cpow( cpow(z,3/2,2)+c(1,0) , 2/3 , 3 )
--    r , g , b  =  corb(fz)
-------- ou
--    z = c( x , y )
--    fz = cpow( craiz(z,2) + c(1,0) , 2 )
--    r , g , b  =  cora(fz,4)
-------- ou
--    z = c( x , y )
--    fz = cpow( craiz(z,3) + c(1,0) , 3 )
--    r , g , b  =  corcl(fz,3)
-------- ou
--    z = c( x , y )
--    fz = c(0,0)    for  i = 1 , 4  do    fz = fz*fz + z    end     fz = craiz(fz,2^3)    fz = fz - z
--    r , g , b  =  corcl(fz,4)
-------- ou
--    z = c( y - 1 , x )
--    numit = 4
--    fz = c(0,0)    for  i = 1 , numit  do    fz = fz*fz + z    end    fz = craiz(fz,2^(numit-1))
--    r1 , g1 , b1  =  corb(fz,4)
--    r2 , g2 , b2  =  corcl(fz,4)
--    r = (r1 + r2)/2    g = (g1 + g2)/2    b = (b1 + b2)/2
-------- ou
--    z = c( x , y )
--    numit = 4
--    k = c(0,1)  fz = z    for  i = 1 , numit  do    fz = fz*fz + k    end    fz = craiz(fz,2^numit)
--    r , g , b  =  corb(fz)
-------- ou outro
    arq:write(byte(255*b))  arq:write(byte(255*g))  arq:write(byte(255*r))
    end end
arq:close()
1 note · View note
asdfgdfme · 12 years ago
Photo
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
0 notes
asdfgdfme · 12 years ago
Text
A mente representa as coisas , mas o esquema de representação permite representações para as quais não há algo que representem
Se representamos uma sensação (experiência) através de outra sensação (como quando lembramos uma experiência passada) , a sensação representação tem alguma semelhança com a sensação que é representada
Mas como a mente tem a capacidade (ou imperfeição) de representar coisas que não existem , uma sensação que se propõe a representar outra pode não representar nada , pode ser um conceito incoerente de sensação
Mas como as sensações são representadas por outras sensações semelhantes de alguma forma , temos uma sensação com propriedades semelhantes às propriedades incoerentes da representação , mas a sensação representação é coerente no sentido de ela própria tem propriedades coerentes , é possível , apenas a sensação que representa é incoerente e não existe
Podemos imaginar (representar) sensações que não tivemos ainda
Nem todas existem
Acho que nem sempre percebemos que uma expêriencia que buscamos não existe , e podemos continuar procurando e nos frustrando não entendendo o motivo de falharmos
E podem haver sensações semelhantes de algumas formas à sensação imaginada , podemos "nos aproximar por muitos lados" , mas nenhuma delas corresponde à expectativa , que tem uma certa perfeição que imaginamos
Talvez exista um conjunto de sensaçoes cuja ocorrencia normal em nossa mente é apenas para representar outras
Talvez , quando sonhamos (dormindo) , estas sensações podem surgir  sem as restrições necessárias para que representem algo
Talvez , a representação correta das coisas é uma ligação entre nós e elas , ou e uma condiçao para a ligaçao entre nós e elas
0 notes