Maxima/文脈と事実
文脈と事実
編集数学の問題の例文を用いて、文脈(Context)と事実(fact)を説明しよう。
a,tを実数として、 とする。
- a=1, t=-2のとき、Aの逆行列を求めよ。
- a=0のとき、Aが逆行列を持つようなtの値をの範囲を求めよ。
- どのようなtに対しても、Aが常に逆行列を持つように、aの範囲を定めよ。
- 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は消せない。
演習問題
編集関連項目
編集マニュアル該当箇所
編集- Maxima Manual: 11. Contexts (英文の公式マニュアル)
- 日本語に翻訳中のマニュアル:23. 文脈