Use 1//2 instead of ((rat simp) 1 2)
[maxima.git] / doc / info / pt_BR / Contexts.texi
blobe4d5f78f0bca2b22df5f3ec0fe0d93ec106c6a8b
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /Contexts.texi/1.13/Sat Jun  2 00:12:34 2007/-ko/
3 @c end concepts Contexts
4 @menu
5 * Funções e Variáveis Definidas para Contextos::    
6 @end menu
8 @node Funções e Variáveis Definidas para Contextos,  , Contextos, Contextos
9 @section Funções e Variáveis Definidas para Contextos
11 @deffn {Função} activate (@var{context_1}, ..., @var{context_n})
12 Ativa os contextos @var{context_1}, ..., @var{context_n}.
13 Os fatos nesses contextos estão então disponíveis para
14 fazer deduções e recuperar informação.
15 Os fatos nesses contextos não são listadas através de @code{facts ()}.
17 A variável @code{activecontexts} é a lista
18 de contextos que estão ativos pelo caminho da função @code{activate}.
20 @end deffn
22 @defvr {Variável de sistema} activecontexts
23 Valor padrão: @code{[]}
25 @code{activecontexts} é a lista de contextos que estão ativos
26 pelo caminho da função @code{activate}, em oposição a sendo ativo porque
27 eles são subcontextos do contexto corrente.
29 @end defvr
31 @deffn {Função} assume (@var{pred_1}, ..., @var{pred_n})
32 Adiciona predicados @var{pred_1}, ..., @var{pred_n} ao contexto corrente.
33 Se um predicado for incossistente ou redundante 
34 com os predicados no contexto corrente,
35 esses predicados não são adicionados ao contexto.
36 O contexto acumula predicados de cada chamada a @code{assume}.
38 @code{assume} retorna uma lista cujos elementos são os predicados adicionados ao contexto
39 ou os átomos @code{redundant} ou @code{inconsistent} onde for aplicável.
41 Os predicados @var{pred_1}, ..., @var{pred_n} podem somente ser expressões
42 com os operadores relacionais @code{< <= equal notequal >=} e @code{>}.
43 Predicados não podem ser expressões de igualdades literais @code{=} ou expressões de desigualdades literais @code{#},
44 nem podem elas serem funções de predicado tais como @code{integerp}.
46 Predicados combinados da forma @code{@var{pred_1} and ... and @var{pred_n}}
47 são reconhecidos,
48 mas não @code{@var{pred_1} or ... or @var{pred_n}}.
49 @code{not @var{pred_k}} é reconhecidos se @var{pred_k} for um predicado relacional.
50 Expressões da forma @code{not (@var{pred_1} e @var{pred_2})}
51 and @code{not (@var{pred_1} or @var{pred_2})}
52 não são reconhecidas.
54 O mecanismo de dedução do Maxima não é muito forte;
55 exitem conseq@"{u}ências muito óbvias as quais não podem ser determinadas por meio de @code{is}.
56 Isso é uma fraqueza conhecida.
58 @code{assume} avalia seus argumentos.
60 Veja também @code{is}, @code{facts}, @code{forget}, @code{context}, e @code{declare}.
62 Exemplos:
64 @c ===beg===
65 @c assume (xx > 0, yy < -1, zz >= 0);
66 @c assume (aa < bb and bb < cc);
67 @c facts ();
68 @c is (xx > yy);
69 @c is (yy < -yy);
70 @c is (sinh (bb - aa) > 0);
71 @c forget (bb > aa);
72 @c prederror : false;
73 @c is (sinh (bb - aa) > 0);
74 @c is (bb^2 < cc^2);
75 @c ===end===
77 @example
78 (%i1) assume (xx > 0, yy < -1, zz >= 0);
79 (%o1)              [xx > 0, yy < - 1, zz >= 0]
80 (%i2) assume (aa < bb and bb < cc);
81 (%o2)                  [bb > aa, cc > bb]
82 (%i3) facts ();
83 (%o3)     [xx > 0, - 1 > yy, zz >= 0, bb > aa, cc > bb]
84 (%i4) is (xx > yy);
85 (%o4)                         true
86 (%i5) is (yy < -yy);
87 (%o5)                         true
88 (%i6) is (sinh (bb - aa) > 0);
89 (%o6)                         true
90 (%i7) forget (bb > aa);
91 (%o7)                       [bb > aa]
92 (%i8) prederror : false;
93 (%o8)                         false
94 (%i9) is (sinh (bb - aa) > 0);
95 (%o9)                        unknown
96 (%i10) is (bb^2 < cc^2);
97 (%o10)                       unknown
98 @end example
100 @end deffn
102 @defvr {Variável de opção} assumescalar
103 Valor padrão: @code{true}
105 @code{assumescalar} ajuda a governar se expressões @code{expr}
106 para as quais @code{nonscalarp (expr)} for @code{false}
107 são assumidas comportar-se como escalares
108 para certas transformações.
110 Tomemos @code{expr} representando qualquer expressão outra que não uma lista ou uma matriz,
111 e tomemos @code{[1, 2, 3]} representando qualquer lista ou matriz.
112 Então @code{expr . [1, 2, 3]} retorna @code{[expr, 2 expr, 3 expr]}
113 se @code{assumescalar} for @code{true}, ou @code{scalarp (expr)} for
114 @code{true}, ou @code{constantp (expr)} for @code{true}.
116 Se @code{assumescalar} for @code{true}, tais
117 expressões irão comportar-se como escalares somente para operadores
118 comutativos, mas não para multiplicação não comutativa @code{.}.
120 Quando @code{assumescalar} for @code{false}, tais
121 expressões irão comportar-se como não escalares.
123 Quando @code{assumescalar} for @code{all},
124 tais expressões irão comportar-se como escalares para todos os operadores listados
125 acima.
127 @end defvr
130 @defvr {Variável de opção} assume_pos
131 Valor padrão: @code{false}
133 Quando @code{assume_pos} for @code{true}
134 e o sinal de um parâmetro @var{x} não pode ser determinado a partir do contexto corrente
135 ou outras considerações,
136 @code{sign} e @code{asksign (@var{x})} retornam @code{true}.
137 Isso pode impedir algum questionamento de @code{asksign} gerado automaticamente,
138 tal como pode surgir de @code{integrate} ou de outros cálculos.
140 Por padrão, um parâmetro é @var{x} tal como @code{symbolp (@var{x})}
141 or @code{subvarp (@var{x})}.
142 A classe de expressões consideradas parâmetros pode ser modificada para alguma abrangência
143 através da variável @code{assume_pos_pred}.
145 @code{sign} e @code{asksign} tentam deduzir o sinal de expressões
146 a partir de sinais de operandos dentro da expressão.
147 Por exemplo, se @code{a} e @code{b} são ambos positivos,
148 então @code{a + b} é também positivo.
150 Todavia, não existe caminho para desviar todos os questionamentos de @code{asksign}.
151 Particularmente, quando o argumento de @code{asksign} for uma
152 diferença @code{@var{x} - @var{y}} ou um logarítmo @code{log(@var{x})},
153 @code{asksign} sempre solicita uma entrada ao usuário,
154 mesmo quando @code{assume_pos} for @code{true} e @code{assume_pos_pred} for
155 uma função que retorna @code{true} para todos os argumentos.
157 @c NEED EXAMPLES HERE
158 @end defvr
161 @defvr {Variável de opção} assume_pos_pred
162 Valor padrão: @code{false}
164 Quando @code{assume_pos_pred} for atribuído o nome de uma função
165 ou uma expressão lambda de um argumento @var{x},
166 aquela função é chamada para determinar
167 se @var{x} é considerado um parâmetro para o propósito de @code{assume_pos}.
168 @code{assume_pos_pred} é ignorado quando @code{assume_pos} for @code{false}.
170 A função @code{assume_pos_pred} é chamada através de @code{sign} e de @code{asksign}
171 com um argumento @var{x}
172 que é ou um átomo, uma variável subscrita, ou uma expressão de chamada de função.
173 Se a função @code{assume_pos_pred} retorna @code{true},
174 @var{x} é considerado um parâmetro para o propósito de @code{assume_pos}.
176 Por padrão, um parâmetro é @var{x} tal que @code{symbolp (x)}
177 ou @code{subvarp (x)}.
179 Veja também @code{assume} e @code{assume_pos}.
181 Exemplos:
182 @c EXAMPLE OUTPUT GENERATED FROM:
183 @c assume_pos: true$
184 @c assume_pos_pred: symbolp$
185 @c sign (a);
186 @c sign (a[1]);
187 @c assume_pos_pred: lambda ([x], display (x), true)$
188 @c asksign (a);
189 @c asksign (a[1]);
190 @c asksign (foo (a));
191 @c asksign (foo (a) + bar (b));
192 @c asksign (log (a));
193 @c asksign (a - b);
195 @example
196 (%i1) assume_pos: true$
197 (%i2) assume_pos_pred: symbolp$
198 (%i3) sign (a);
199 (%o3)                          pos
200 (%i4) sign (a[1]);
201 (%o4)                          pnz
202 (%i5) assume_pos_pred: lambda ([x], display (x), true)$
203 (%i6) asksign (a);
204                               x = a
206 (%o6)                          pos
207 (%i7) asksign (a[1]);
208                              x = a
209                                   1
211 (%o7)                          pos
212 (%i8) asksign (foo (a));
213                            x = foo(a)
215 (%o8)                          pos
216 (%i9) asksign (foo (a) + bar (b));
217                            x = foo(a)
219                            x = bar(b)
221 (%o9)                          pos
222 (%i10) asksign (log (a));
223                               x = a
225 Is  a - 1  positive, negative, or zero?
228 (%o10)                         pos
229 (%i11) asksign (a - b);
230                               x = a
232                               x = b
234                               x = a
236                               x = b
238 Is  b - a  positive, negative, or zero?
241 (%o11)                         neg
242 @end example
244 @end defvr
247 @defvr {Variável de opção} context
248 Valor padrão: @code{initial}
250 @code{context} nomeia a coleção de fatos mantida através de @code{assume} e @code{forget}.
251 @code{assume} adiciona fatos à coleção nomeada através de @code{context},
252 enquanto @code{forget} remove fatos.
254 Associando @code{context} para um nome @var{foo} altera o contexto corrente para @var{foo}.
255 Se o contexto especificado @var{foo} não existe ainda,
256 ele é criado automaticamente através de uma chamada a @code{newcontext}.
257 @c ISN'T THIS NEXT BIT EQUIVALENT TO THE FIRST ??
258 O contexto especificado é ativado automaticamente.
260 Veja @code{contexts} para uma descrição geral do mecanismo de contexto.
262 @end defvr
264 @c UMM, I'M HAVING TROUBLE GETTING THE CONTEXT-SWITCHING STUFF TO BEHAVE AS EXPECTED
265 @c SOME EXAMPLES WILL HELP A LOT HERE
266 @defvr {Variável de opção} contexts
267 Valor padrão: @code{[initial, global]}
269 @code{contexts} é uma lista dos contextos que
270 existem atualmente, incluindo o contexto ativo atualmente.
272 O mecanismo de contexto torna possível para um usuário associar
273 e nomear uma porção selecionada de fatos, chamada um contexto.
274 Assim que isso for concluído, o usuário pode ter o Maxima assumindo ou esquecendo grande quantidade
275 de fatos meramente através da ativação ou desativação seu contexto.
277 Qualquer átomo simbólico pode ser um contexto, e os fatos contidos naquele
278 contexto irão ser retidos em armazenamento até que sejam destruídos um por um
279 através de chamadas a @code{forget} ou destruídos com um conjunto através de uma chamada a @code{kill}
280 para destruir o contexto que eles pertencem.
282 Contextos existem em uma hierarquía, com o raíz sempre sendo
283 o contexto @code{global}, que contém informações sobre Maxima que alguma
284 função precisa.  Quando em um contexto dado, todos os fatos naquele
285 contexto estão "ativos" (significando que eles são usados em deduções e
286 recuperados) como estão também todos os fatos em qualquer contexto que for um subcontexto
287 do contexto ativo.
289 Quando um novo Maxima for iniciado, o usuário está em um
290 contexto chamado @code{initial}, que tem @code{global} como um subcontexto.
292 Veja também @code{facts}, @code{newcontext},
293 @code{supcontext}, @code{killcontext}, @code{activate}, @code{deactivate}, @code{assume}, e @code{forget}.
295 @end defvr
297 @deffn {Função} deactivate (@var{context_1}, ..., @var{context_n})
298 Desativa os contextos especificados @var{context_1}, ..., @var{context_n}.
300 @end deffn
302 @deffn {Função} facts (@var{item})
303 @deffnx {Função} facts ()
304 Se @var{item} for o nome de um contexto,
305 @code{facts (@var{item})} retorna uma lista
306 de fatos no contexto especificado.
308 Se @var{item} não for o nome de um contexto,
309 @code{facts (@var{item})} retorna uma lista de fatos conhecidos sobre @var{item} no contexto
310 atual.  Fatos que estão atuvos, mas em um diferente contexto, não são listados.
312 @code{facts ()} (i.e., sem argumento) lista o contexto atual.
314 @end deffn
316 @defvr {Declaração} features
317 Maxima recnhece ceertas propriedades matemáticas de funções e variáveis.
318 Essas são chamadas "recursos".
320 @code{declare (@var{x}, @var{foo})} fornece a propriedade @var{foo} para a função ou variável @var{x}.
322 @code{declare (@var{foo}, recurso)} declara um novo recurso @var{foo}.
323 Por exemplo,
324 @code{declare ([red, green, blue], feature)}
325 declara três novos recursos, @code{red}, @code{green}, e @code{blue}.
327 O predicado @code{featurep (@var{x}, @var{foo})}
328 retorna @code{true} se @var{x} possui a propriedade @var{foo},
329 e @code{false} de outra forma.
331 A infolista @code{features} é uma lista de recursos conhecidos.
332 São esses
333 @code{integer}, @code{noninteger}, @code{even}, @code{odd}, @code{rational},
334 @code{irrational}, @code{real}, @code{imaginary}, @code{complex},
335 @code{analytic}, @code{increasing}, @code{decreasing}, @code{oddfun},
336 @code{evenfun}, @code{posfun}, @code{commutative}, @code{lassociative},
337 @code{rassociative}, @code{symmetric}, e @code{antisymmetric},
338 mais quaisquer recursos definidos pelo usuário.
340 @code{features} é uma lista de recursos matemáticos.
341 Existe também uma lista de recursos não matemáticos, recursos dependentes do sistema. Veja @code{status}.
343 @end defvr
345 @deffn {Função} forget (@var{pred_1}, ..., @var{pred_n})
346 @deffnx {Função} forget (@var{L})
347 Remove predicados estabelecidos através de @code{assume}.
348 Os predicados podem ser expressões equivalentes a (mas não necessáriamente idênticas a)
349 esses prevamentes assumidos.
351 @code{forget (@var{L})}, onde @var{L} é uma lista de predicados,
352 esquece cada item da lista.
354 @end deffn
356 @deffn {Função} killcontext (@var{context_1}, ..., @var{context_n})
357 Mata os contextos @var{context_1}, ..., @var{context_n}.
359 Se um dos contextos estiver for o contexto atual, o novo contexto
360 atual irá tornar-se o primeiro subcontexto disponível do contexto
361 atual que não tiver sido morto.  Se o primeiro contexto disponível
362 não morto for @code{global} então @code{initial} é usado em seu lugar.  Se o contexto
363 @code{initial} for morto, um novo, porém vazio contexto @code{initial} é criado.
365 @code{killcontext} recusa-se a matar um contexto que estiver
366 ativo atualmente, ou porque ele é um subcontexto do contexto
367 atual, ou através do uso da função @code{activate}.
369 @code{killcontext} avalia seus argumentos.
370 @code{killcontext} retorna @code{done}.
372 @end deffn
374 @deffn {Função} newcontext (@var{nome})
375 Cria um novo contexto, porém vazio, chamado @var{nome}, que
376 tem @code{global} como seu único subcontexto.  O contexto recentemente criado
377 torna-se o contexto ativo atualmente.
379 @code{newcontext} avalia seu argumento.
380 @code{newcontext} retorna @var{nome}.
382 @end deffn
384 @deffn {Função} supcontext (@var{nome}, @var{context})
385 @deffnx {Função} supcontext (@var{nome})
386 Cria um novo contexto, chamado @var{nome},
387 que tem @var{context} como um subcontexto.
388 @var{context} deve existir.
390 Se @var{context} não for especificado, o contexto atual é assumido.
392 @end deffn