複数のものを修正する特定のロケールを宣言し、最初のものの新しいロケールを宣言しようとしています。ここで最初のロケールです:Isabelleのロケール宣言のインスタンス
locale presheaf = topology + Ring +
fixes
opcatopensets ::" ('a) PosetalCategory" and
objectsmap :: "'a set ⇒ ('a, 'm) Ring_scheme" and
restrictionsmap:: "('a set ×'a set) ⇒ ('a ⇒ 'a)"
assumes
"opcatopensets ≡ ⦇ Obj = {x. x ∈ T} , Mor = {(x,y)| x y. (x,y) ∈ revpo} ,
Dom = psheafdom , Cod = psheafcod , Id = psheafid , Comp = psheafcomp ⦈" and
"∀y w. w ≠ y ⟶ (psheafcomp (x,y) (w,z) = undefined)" and
"∀x. x ∉ T ⟶ (objectsmap x = undefined)" and
"∀x y.(restrictionsmap (x,y)) ∈ rHom (objectsmap x) (objectsmap y)" and
"∀ x y . (restrictionsmap (x,x) y = y) " and
"∀ x y z . ((restrictionsmap (y,z))∘(restrictionsmap (x,y)) = restrictionsmap(x,z))"
は、この宣言の終わりに、私は次のような出力が得られます。
locale presheaf =
fixes T :: "'a set set"
and R :: "('b, 'c) Ring_scheme"
and opcatopensets :: "'a PosetalCategory"
and objectsmap :: "'a set ⇒ ('a, 'm) Ring_scheme"
and restrictionsmap :: "'a set × 'a set ⇒ 'a ⇒ 'a"
assumes "presheaf T R opcatopensets objectsmap restrictionsmap"
だから私は、私は私が定義するために必要なものを最後の行から抽出できると思っていましたロケール "presheaf"の2つのインスタンスを含む新しいロケール。これは私が試したものです:
短い、私は2つのpresheaves FとGを修正して、このパラメータを修正したい「射」でlocale sheafmorphism =
F: presheaf T R opcatopensets F restrictionsmap + G: presheaf T R opcatopensets
G restrictionsmap
for F and G +
fixes morphism :: "'a set ⇒ ('a ⇒ 'a)"
assumes (things)
と「射」と「restrictionsmap」との「objectsmap」を含むものと仮定します式の中
違法自由変数:FおよびGは、私のこの試みはにつながった "T"、 "R"、 "opcatopensets"、 "restrictionsmap"
私はドンと仮定します」ロケールをインスタンシエートするときにこれを行う方法を理解するeは複数のものを修正します。このエラーの原因は何ですか?また、私は何をしたいのですか?
ありがとうございます。 "for"宣言のパラメータの名前を変更するにはどうすればよいですか?あなたが言ったことを考えれば、私は "ロケールsheafmorphism = F:presheaf TR opcatopensets F restrictionsmap + G:presheaf TR opcatopensets G restrictmap TR opcatopensets F restrictionsmapとG +(...)"については と書いてみました。そのエラーは修正されましたが、例えば、 "restrictionsmap"の "F-version"と "G" -versionを参照できることは素晴らしいことです。 –
投稿に名前を変更する2つの例を追加しました。詳細については、ドキュメンテーションパネルで使用できるロケールのチュートリアルを参照してください。 –