募集内容 |
一般 1000円(前払い)
先着順
|
---|---|
申込者 | 申込者一覧を見る |
開催日時 |
2020/07/20(月) 20:30 ~ 22:00
|
募集期間 |
2020/07/14(火) 00:00
〜 |
会場 |
Zoom オンライン |
前払いについて |
前払いについての連絡先: (参加者にのみ公開されます) |
キャンセル・参加費用の払い戻しについて主催者からの説明: お申込み後のキャンセルはできません.セミナーについての説明をよくお読みいただき,十分ご検討の上お申し込みください.CONNPASS上でキャンセルしても,セミナー当日に不参加であったとしても参加費用は返却されません. |
|
領収データの発行: 発行しない (詳しくはこちら) |
イベントの説明
証明ドリル (1) プログラムの証明練習 in Isabelle
プログラムでは数を数えることが頻繁にあります.そこで数を数えるプログラムに関する証明の練習しませんか?
以下に問題を書くので挑戦してみてください.答えの解説を聞きたい人はイベントに申し込んでください.
有限集合の要素の数 card
有限集合 A の要素の数は card A と表すことができます.たとえば整数のリスト(または配列)v の要素のうち,正である要素の数は次のように表すことができます.正である要素のインデックスの数を数えるわけです.
card {i. i < length v & v ! i > 0}
これを求めるプログラムを考えることにします.
尚,card に関する定理は Finite_Set.thy の中にあります.
問題 1
整数のリストに含まれる正の要素の数を求める関数 count_pos を定義してください.
問題 2
次の式を証明してください.
count_pos v = card {i. i < length v & v ! i > 0}
問題 3
整数の配列に含まれる正の要素の数を求める命令型のプログラムを書いて,正当性を証明してください.
4つのバリエーションが考えられます.
- count_pos で仕様を表す.インデックスの昇順に調べる.
- count_pos で仕様を表す.インデックスの降順に調べる.
- card で仕様を表す.インデックスの昇順に調べる.
- card で仕様を表す.インデックスの降順に調べる.
前提知識
- Isabelle Hoare 論理ライブラリ
資料 資料をもっと見る/編集する
資料が投稿されると、最新の3件が表示されます。