JPH09204309A - 証明図表示装置 - Google Patents

証明図表示装置

Info

Publication number
JPH09204309A
JPH09204309A JP8012867A JP1286796A JPH09204309A JP H09204309 A JPH09204309 A JP H09204309A JP 8012867 A JP8012867 A JP 8012867A JP 1286796 A JP1286796 A JP 1286796A JP H09204309 A JPH09204309 A JP H09204309A
Authority
JP
Japan
Prior art keywords
proof
partial
directed graph
screen
demonstration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP8012867A
Other languages
English (en)
Inventor
Hiroshi Ichiji
宏 伊知地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP8012867A priority Critical patent/JPH09204309A/ja
Publication of JPH09204309A publication Critical patent/JPH09204309A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【課題】 証明全体を視覚的に提示できるようにする。 【解決手段】 入力された証明1が有向グラフ生成手段
2によって有向グラフ2aに変換される。すると、有向
グラフ表示手段3が、有向グラフ2aから視覚的に認識
するための有向グラフ3aを生成し画面表示する。さら
に、部分証明範囲指定手段4が、有向グラフ2a内の一
部分を指定すると、部分証明図生成手段5が部分証明5
aを生成し、部分証明図表示手段6が、部分証明図6a
を画面表示するる。その結果、証明全体を1つの画面に
収めることが可能となり、証明全体を視覚的に把握する
ことが容易となるとともに、証明を作成したい部分の部
分証明図を表示させるとにより、プログラムの効率を考
えた証明の作成が容易になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は計算機による証明構
築を支援する証明図表示装置に関し、証明全体を理解し
易い形式で表示する証明図表示装置に関する。
【0002】
【従来の技術】近年、ソフトウェアの開発において、Z
やVDMなどの仕様記述言語による形式的開発技法が利
用されるようになってきた。これらの形式的開発技法
は、ソフトウェアの仕様を形式的に明確に記述して、仕
様やプログラムの誤りをなくすことを目指している。
【0003】さらに、形式的仕様の正しさを形式的に証
明し、証明した結果からプログラムを自動的に作り出す
という研究が現在進められている。特開平6−3142
00号公報の「証明構築支援装置」では、人が証明を構
築する上で、計算機が候補となり得る原論理式を提示し
て支援する機構について述べられている。また人工知能
学会誌、Vol.10 No.1 (1995年1
月)、萩谷昌己「証明チェッカとそのユーザインタフェ
ース」では、証明支援システムのユーザインタフェース
について、研究のサーベイが行なわれている。
【0004】このように、形式的仕様に基づくソフトウ
ェアの開発では、プログラムを書くことは証明を作るこ
とと対応付けられる。従って、構築した証明を理解し易
くすれば、ソフトウェアの開発効率が向上する。
【0005】そこで、従来は、論理式と推論規則を簡単
な記号で表して、証明を視覚的な証明図として表示する
ことが行われている。
【0006】
【発明が解決しようとする課題】ところで、証明を構築
する際には、証明を行なおうとしている部分から数ステ
ップ分が理解できれば、多くの場合には証明を行なうこ
とが出来る。そこで、証明全体を把握して、証明内の個
々の部分を互いに比較することができれば、効率がよい
プログラムを構築したり、プログラムのモジュール化を
進めるための助けとなる。
【0007】しかし、従来の証明図表示装置では証明図
を視覚的に表示した際の情報量が多いため、証明全体を
計算機の画面上に表示しようとすると、多くの場合は画
面上に証明図が収まらないという問題点があった。
【0008】本発明はこのような点に鑑みてなされたも
のであり、証明構築支援系を用いて、形式的仕様から証
明を構築してプログラムを生成する過程において、証明
全体を視覚的に提示する証明図表示装置を提供すること
を目的とする。
【0009】
【課題を解決するための手段】図1は本発明の証明図表
示装置の原理構成図である。本発明では上記課題を解決
するために、証明図を画面表示する証明図表示装置にお
いて、形式的に表現された証明1が入力されると、論理
式を節点とし、与えられた推論規則における、他の論理
式を導くための論理式と導かれる論理式とが接続関係を
有する有向グラフ2aを生成する有向グラフ生成手段2
と、前記有向グラフを画面に表示する有向グラフ表示手
段3と、を有することを特徴とする証明図表示装置が提
供される。
【0010】この構成によれば、形式的に表現された証
明1が入力されると、有向グラフ生成手段2により、論
理式を節点とし、与えられた推論規則における、他の論
理式を導くための論理式と導かれる論理式とが接続関係
を有する有向グラフ2aが生成される。そして、有向グ
ラフ表示手段3により、有向グラフが画面に表示され
る。
【0011】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて説明する。図1は本発明の証明図表示装置の
原理構成を示す図である。有向グラフ生成手段2は、証
明1が入力されると、個々の論理式を節点とし、与えら
れた推論規則における、他の論理式を導くための論理式
と導かれる論理式とが接続関係を有する有向グラフ2a
を生成する。この段階での有向グラフ2aは、装置の内
部表現としての形態を取っている。有向グラフ表示手段
3は、内部表現の有向グラフ2aから、視覚的に認識す
るためのイメージ形態の有向グラフ3aを生成し、表示
装置の画面に表示する。
【0012】部分証明範囲指定手段4は、有向グラフ2
aの任意の論理式の位置と、その論理式からの表示レベ
ルを指定する。部分証明生成手段5は、指定された位置
の論理式を決定し、証明1から、指定された論理式から
指定された表示レベルだけ上位方向の論理式までの部分
証明を取り出す。そして、論理式と推論とを備える部分
証明5aを生成する。部分証明図表示手段6は、部分証
明5aを視覚的に認識するための部分証明図6aを画面
に表示する。
【0013】このような構成により、入力された証明1
が有向グラフ生成手段2によって有向グラフ2aに変換
され、有向グラフ表示手段3により有向グラフ2aから
イメージ形態の有向グラフ3aが生成され画面表示され
る。その結果、従来の証明図で画面に表示しようとする
と完全に画面から飛び出してしまう場合であっても、証
明を有向グラフで表示することにより、証明全体を1つ
の画面に収めることが可能となり、証明全体を視覚的に
把握することが容易となる。
【0014】また、部分証明範囲指定手段4が有向グラ
フ2a内の一部分を指定すると、部分証明生成手段5が
部分証明5aを生成し、部分証明図表示手段6が部分証
明図6aを画面表示するため、任意の部分の部分証明図
6aを表示させることができ、証明の作成が容易にな
る。
【0015】このような機能を有する証明図表示装置の
例を、以下に具体的に説明する。図2は本発明を実施す
るための証明図表示装置の構成を示すブロック図であ
る。この例では、入力された証明図11aは証明保持部
11に保持される。有向グラフ生成部12は、証明の論
理式を節点(以後、ノードと呼ぶ)とし、推論規則にお
ける、他の論理式を導く論理式とそれにより導かれる論
理式とを矢で接続した有向グラフ12aを生成して出力
する。この有向グラフ12aは、装置の内部表現で表さ
れている。有向グラフ表示部13は、有向グラフ12a
を視覚的に認識するためのイメージに変換し表示装置1
9の画面に表示する。
【0016】位置指定部16は、マウス14やキーボー
ド15の操作により有向グラフ内の一部分を指定する。
そして、指定した領域の最下位のノードの位置と、その
ノードから何階層分の証明図を表示するのかを示す表示
レベルを出力する。部分証明生成部17は、指定位置と
表示レベルで特定された有向グラフの範囲に対応する証
明を抽出し、部分的な部分証明17aを生成する。この
部分証明17aは、装置の内部表現で生成されている。
部分証明図表示部18は、部分証明生成部17が生成し
た部分証明17aを、画像で表現するための部分証明図
に変換し、その部分証明図を表示装置19の画面に表示
する。
【0017】ここで、上記の構成の証明図表示装置が扱
う証明は通常の述語論理であり、論理記号として否定、
選言、連言、含意、同値、全称記号、存在記号を持つも
のとする。図3は画面上に表された論理記号を示す図で
ある。この図には、否定、選言、連言、含意、同値、全
称記号、及び存在記号の論理記号が示されている。但
し、この論理記号は画面表示用のものであり、装置内で
は異なる記号で取り扱われる。装置内部での各記号は以
下の通りである。
【0018】否定は、(not A)。選言は、(orA
B)。連言は、(and AB)。
【0019】含意は、(imply AB)。同値は、(eqA
B)。全称記号は、(any xA)。
【0020】存在記号は、(exist xA)。これらの記
号のそれぞれが論理式である。また、A,Bも論理式で
あり、xは変数である。
【0021】そして、証明は推論規則と論理式で構成さ
れている。図4は画面上に表示される推論規則を示す図
である。(A)は、論理式Aから直接に論理式Bが導き
出せるという推論規則である。この推論規則の内部表現
は、
【0022】
【数1】(inferBA) ・・・(1) である。
【0023】また、(B)は、論理式A、B、Cから論
理式Dが導かれるような推論規則である。この推論規則
の内部表現は、
【0024】
【数2】(inferDABC) ・・・(2) となる。
【0025】(C)は、論理式A、B、D、E、Fから
論理式Hが導かれることを証明した証明図である。これ
は、内部表現で記述すると、
【0026】
【数3】 となり、合計3回推論規則を用いて結論を得ることがで
きる。このとき、論理式A、B、D、E、Fを仮定と呼
び、論理式Hを結論と言う。
【0027】ここで、内部表現で記述された証明が図2
に示す証明図表示装置に読み込まれた場合の処理手順に
ついて説明する。図5は本発明の処理手順を示すフロー
チャートである。 〔S1〕有向グラフ生成部12は、証明を前から読み込
む。 〔S2〕有向グラフ生成部12は、「infer 」はそのま
まにして、同じレベルの「( 」と「) 」の間にinfer を
含まない式を「* 」で置き換えた表現を作り出す。これ
が有向グラフの内部表現である。この「* 」が、表示画
面上ではノードで表される。 〔S3〕有効グラフ表示部13が、有向グラフの内部表
現(infer** )などで同じレベルで一番左に現れる「*
を表すノードを下に配置し、その上にそれ以外のものを
表すノードを左から順に配置する。この際、下にあるノ
ードから限られた範囲のところにほぼ均等に配置し、下
から上へ矢印を引く。この作業を式がなくなるまで繰り
返す。これにより、有向グラフの内部表現が視覚的なイ
メージに変換される。そして、その有向グラフを表示装
置19の画面に表示する。 〔S4〕位置指定部16は、表示された有向グラフの任
意のノードと、そのノードからどれだけ上の証明まで表
示するのかを示す表示レベルとを指示し、内部表現で記
述された証明と有向グラフを部分証明生成部17に与え
る。 〔S5〕部分証明生成部17は、指定されたノードが有
向グラフ上のどの位置に現れるかを検出する。 〔S6〕部分証明生成部17は、生成された矢の列にし
たがって、内部表現で記述された証明から、部分証明を
取り出す。 〔S7〕部分証明図表示部18は、取り出された内部表
現で記述されている証明を、根(取り出された証明の一
番下位の論理式)から順に推論規則を横線で表示して、
下から順に指定された表示レベルまで表示する。
【0028】以上のようにして、読み込まれた証明を有
向グラフで画面に表示するこができるとともに、任意の
範囲を指定して、その部分のみの証明図を表示させるこ
とができる。
【0029】ここで、
【0030】
【数4】 という証明を読み込んだ場合を例にとり、上記フローチ
ャートの処理内容を説明する。
【0031】図6は式(4)の証明図である。この図に
おいて、結論である論理式Cが最も下に配置されてい
る。その論理式Cの上には、左側に論理式B⊃Cが、右
側に論理式Bが配置されている。左側の論理式B⊃Cの
上には、左側に論理式A⊃(B⊃C)が、右側に論理式
Aが配置されている。
【0032】一方、結論である論理式Cの上の右側に配
置された論理式Bの上には、論理式A∧Bが配置されて
いる。この論理式A∧Bの更に上には、左側に論理式A
が、右側に論理式Bが配置されている。
【0033】まず、式(4)の証明を読み込むと(ステ
ップS1)、
【0034】
【数5】 という有向グラフの内部表現が作り出される(ステップ
S2)。この有向グラフの内部表現の「* 」が、画面表
示される際にはノードとなる。そして、一定の規則に従
ってノードを配置するとともに、各ノード間を矢で接続
した画面表示用の有向グラフを作成し、表示装置に表示
する(ステップS3)。以下に、式(5)の内部表現の
有向グラフと、その有向グラフから生成され画面に表示
される有向グラフとの関係を示す。
【0035】図7は画面に表示される有向グラフを示す
図である。この図を用いて、式(5)の有向グラフが、
画面に表示される有向グラフとどのように対応している
のかを説明する。
【0036】式(5)の有向グラフでは、一番左側にあ
る「* 」がベースノード21となり、2つのノード2
2,23へ矢31,32が結ばれることを意味してい
る。矢31が結ばれた一つ目のノード22は(infe
r*** ) の一番左側の「* 」を表すノードであり、もう
一つのノード23は(infer* (infer*** ))の一番左側の
* 」を表すノードである。
【0037】先の(infer*** ) の一番左側の「* 」を表
すノード22からは、2本の矢33,34が出ていて、
中央の「* 」を表すノード24と、右側の「* 」を表す
ノード25に届く。一方、(infer* (infer*** ))の一番
左側の「* 」を表すノード23からは、矢35が出てい
て、(infer* (infer*** ))の中の(infer*** ) の一番左
側の「* 」を表すノード26に届く。そして、その(inf
er*** ) の一番左側の「* 」を表すノード26からは2
本の矢36,37が出ていて、中央と一番右側の「*
を表すそれぞれのノード27,28へ届く。
【0038】さらに、部分証明図を表示させるために、
表示された有向グラフのあるノードと、そのノードから
どれだけ上まで証明を表示するかを示す表示レベルとを
指示する(ステップS4)。ここで、ノードと表示レベ
ルを指示する手段は、ウインドウシステム上での視覚的
な選択手段でも良いし、Emacsなどのエディタ上で
行なわれるようなコマンドによる指定手段でも良い。
【0039】指定されたノードが有向グラフ上のどの位
置に現れるかを検出する(ステップS5)。検出の方法
は、グラフ理論で通常行なうように、有向グラフのルー
ト(有向グラフのベースノード)から各ノードへ到達す
る矢の列を並べることで決定できる。ルートから指定ノ
ードまでの矢をたどる各段階で、左から何番目の矢を通
るのかを調べれば、有向グラフにおいて、現在検出レベ
ルの「infer 」の後の何番目の要素を採用すれば良いか
が決定される。これはLisp言語において、cdrを
その回数だけ繰り返し最後にcarを取り出すことに等
しく、実際、有向グラフも内部表現で記述された証明も
Lispと同じリスト構造をしている。左からn番目の
矢を通るときには、「infer 」のn+1番目の要素を検
出すればよく、この繰り返しを行なって、選択した矢の
列の表を作る。
【0040】生成された矢の列にしたがって、内部表現
で記述された証明から、部分証明を取り出す(ステップ
S6)。矢の列の最初から順に、左から何番目の矢が選
択されているかにしたがって、内部表現で記述された証
明から要素を取り出す。n番目の矢が選択されたときに
は、今検出しているレベルの「infer 」のn+1番目の
要素を取り出せば良い。「infer 」の要素は、再び内部
表現で記述された証明になっている。取り出した内部表
現で記述された証明にこの作業を繰り返す。矢の列がな
くなるまで再帰的に繰り返すと、指定されたノードを根
とする内部表現で記述された証明が取り出せる。
【0041】取り出された内部表現で記述された証明
を、根から順に推論規則を横線で表示して、下から順に
指定された表示レベルまで表示する。表示レベルは、各
枝ごとに推論規則で1段階上がるごとに1を減じて表示
レベルが0になるまで繰り返す(ステップS7)。例え
ば、入力されている証明が式(4)である場合に、この
証明を全て表示すると、図6のようになるが、部分証明
の範囲をベースノードから2階層までとすると、ベース
となる論理式から2段階上までしか表示されない。図8
は表示レベルを2とした場合の部分証明図である。この
証明図では、図6で示した証明のベースとなる論理式C
の左上の枝の三段目以上の論理式が表示されていない。
【0042】このようにして、証明の一部分を抜き出し
で画面表示させることができ、その証明に対応するプロ
グラムの効率の改善やモジュール化等の作業を効率よく
行うことができる。
【0043】
【発明の効果】以上説明したように本発明では、証明を
有向グラフで表すようにしたことにより、通常の証明図
では画面から飛び出してしまうような場合であっても、
証明全体を視覚的に把握することができる。
【0044】また、有向グラフ上で位置や表示レベルを
指定して、証明の一部分を証明図として表示できるよう
にしたことにより、効率のよいプログラムの作成や、適
正なプログラムのモジュール化を可能とする証明を容易
に構築することができる。
【図面の簡単な説明】
【図1】本発明の証明図表示装置の原理構成図である。
【図2】本発明を実施するための証明図表示装置の構成
を示すブロック図である。
【図3】画面上に表された論理記号を示す図である。
【図4】画面上に表示される推論規則を示す図である。
(A)は論理式Aから直接に論理式Bが導き出せるとい
う推論規則であり、(B)は論理式A、B、Cから論理
式Dが導かれるような推論規則であり、(C)は論理式
A、B、D、E、Fから論理式Hが導かれることを証明
した証明図である。
【図5】本発明の処理手順を示すフローチャートであ
る。
【図6】式(4)の証明図である。
【図7】画面に表示される有向グラフを示す図である。
【図8】表示レベルを2とした場合の部分証明図であ
る。
【符号の説明】
1 証明 2 有向グラフ生成手段 3 有向グラフ表示手段 4 部分証明範囲指定手段 5 部分証明生成手段 6 部分証明図表示手段 6a 部分証明図

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 証明図を画面表示する証明図表示装置に
    おいて、 形式的に表現された証明が入力されると、論理式を節点
    とし、与えられた推論規則における、他の論理式を導く
    ための論理式と導かれる論理式とが接続関係を有する有
    向グラフを生成する有向グラフ生成手段と、 前記有向グラフを画面に表示する有向グラフ表示手段
    と、 を有することを特徴とする証明図表示装置。
  2. 【請求項2】 前記有向グラフの任意の一部分を示す部
    分証明範囲を指定する部分証明範囲指定手段と、前記証
    明の中から、前記部分証明範囲に対応する部分証明を取
    り出す部分証明生成手段と、前記部分証明を視覚的に示
    した部分証明図を画面に表示する部分証明図表示手段
    と、をさらに有することを特徴とする請求項1記載の証
    明図表示装置。
JP8012867A 1996-01-29 1996-01-29 証明図表示装置 Pending JPH09204309A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8012867A JPH09204309A (ja) 1996-01-29 1996-01-29 証明図表示装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8012867A JPH09204309A (ja) 1996-01-29 1996-01-29 証明図表示装置

Publications (1)

Publication Number Publication Date
JPH09204309A true JPH09204309A (ja) 1997-08-05

Family

ID=11817372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8012867A Pending JPH09204309A (ja) 1996-01-29 1996-01-29 証明図表示装置

Country Status (1)

Country Link
JP (1) JPH09204309A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018025288A1 (ja) * 2016-08-02 2018-02-08 日本電気株式会社 推論システム、情報処理システム、推論方法、及び、記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018025288A1 (ja) * 2016-08-02 2018-02-08 日本電気株式会社 推論システム、情報処理システム、推論方法、及び、記録媒体

Similar Documents

Publication Publication Date Title
US9251467B2 (en) Probabilistic parsing
Lau et al. Version Space Algebra and its Application to Programming by Demonstration.
Blostein et al. Issues in the practical use of graph rewriting
JP3585523B2 (ja) テキスト状画像認識方法
Fogel et al. A note on representations and variation operators
Hill et al. Algorithms and techniques for VLSI layout synthesis
Goguen Jr On homomorphisms, correctness, termination, unfoldments, equivalence of flow diagram programs
Takeda et al. Universal abduction studio-proposal of a design support environment for creative thinking in design
Graf A computational guide to the dichotomy of features and constraints
JPH09204309A (ja) 証明図表示装置
JP2003256435A (ja) 配列データ統合処理方法、配列データ統合処理装置及び配列データ統合処理プログラム
Alhazov et al. Contextual array grammars with matrix control, regular control languages, and tissue P systems control
Sayyad Shirabad Supporting software maintenance by mining software update records
Tinkham Induction of Schemata for Program Synthesis
JP2002259444A (ja) 情報検索プログラムおよび情報検索方法
De Una Discrete optimization over graph problems.
Bauderon et al. Visualization of distributed algorithms based on graph relabelling systems
JP3648710B2 (ja) プログラム解析システム
Tung et al. Multiple views of an executable software specification language
Gray et al. Grouping and ordering user interface components
Chavez Architectures and approximation algorithms for probabilistic expert systems
JPH07319936A (ja) フロー図生成装置
JPH10269227A (ja) 分類データの生成方法
Costagliola et al. DrawSE2: an application for the visual definition of visual languages using the local context-based visual language specification
Meissner A method to expose the hidden structure of Fortran programs