文脈と事実 編集

数学の問題の例文を用いて、文脈(Context)と事実(fact)を説明しよう。

a,tを実数として、 とする。

  1. a=1, t=-2のとき、Aの逆行列を求めよ。
  2. a=0のとき、Aが逆行列を持つようなtの値をの範囲を求めよ。
  3. どのようなtに対しても、Aが常に逆行列を持つように、aの範囲を定めよ。
  4. Aはあるtの値に対しても、常に逆行列を持つことを示せ。

まず、初めの文から「a,tを実数として」という事実(fact)が加わる。また行列Aの定義も一つの事実である。これら事実の集合を文脈(context)という。ここで初めの文の文脈を文脈rootと名づけておこう。また、1.で新しい事実が加わるが(この加えた文脈を文脈1としておこう。)、2.では文脈rootの事実以外は忘れ去られる。(この文の時点の文脈を文脈2としておこう。)このとき、文脈rootは文脈1,文脈2の部分文脈(subcontext)といい、2.の時点で文脈1は不活性(inactive)で文脈2が活性(active)であるという。

事実操作 編集

宣言(declare) 編集

declare(a1,属性1,a2,属性2,...)は、a1に属性1,a2に属性2,を付ける。 変数・関数に指定できる事実の属性はfeatures()で確認できる。(それ以外にも属性はあるが、それはここでは書かない。) 属性は以下のようになっており、競合しない属性ならいくつもつけることができる。 またassume(kind(変数,属性))でも、宣言できる。

変数に対して
complex(複素数)[1]
real(実数)[1] imaginary(純虚数)[1] ×
rational(有理数) irrational(無理数) ×
integer(整数) noninteger(非整数) ×
even(偶数) odd(奇数) × ×

関数に対して[2]

  • 解析的 analytic
  • 引数の交換の対称性 commutative, symmetric(対称),antisymmetric(反対称)
  • 引数の再帰性 lassociative,rassociative
  • 返値に関すること posfun,integervaled
  • 関数の勾配の性質 incleasing,decleasing
  • 返値の偶奇性 oddfun,evenfun

事実確認(featurep) 編集

featurep(変数,属性)は変数に属性があるとき、trueを返す。

仮定(assume) 編集

assume(式)は「式が成り立つとする」といった仮定を現行の文脈に付加する。

事実一覧(facts) 編集

  • facts(変数)は変数に課された事実を一覧する。
  • facts()はいまの文脈で成り立つ事実を一覧する。

事実を消す(forget) 編集

forget(式)は式の仮定が成り立つ事実を消す。

文脈操作 編集

Maximaでは、起動時にglobalと、それを部分文脈を持つinitialの2つの空の文脈が作られる。どちらも不活性で、現行の文脈はinitialになっている。

新しい文脈を作る 編集

  • supercontext(文脈名,部分文脈)は新しい文脈を部分文脈(subcontent)の上に作る。
  • newcontext(文脈名)は新しい文脈をglobalを部分文脈として作った上、新しい文脈を活性化し、現在の文脈とする。

文脈を一覧する 編集

  • contexts()は文脈の一覧をリストで返す。
  • activecontexts()は活性化している文脈の一覧をリストで返す。

現行の文脈を変える 編集

contextの変数に現行の文脈が割り当てられている。現行の文脈を変えるときはこの変数に新しい文脈を割り当る。

文脈を活性化・不活性化する 編集

  • activate(文脈名)は文脈を活性化する。
  • deactivate(文脈名)は文脈を不活性化する。

文脈を消す 編集

killcontext(文脈名)は文脈を消す。ただし、globalは消せない。

演習問題 編集

関連項目 編集

  1. ^ 1.0 1.1 1.2 Maxima/複素数
  2. ^ Maxima/関数を定義する

マニュアル該当箇所 編集