아래 코드에 대한 구문 오류 메시지가 나타납니다. 메시지는 addLocal 어설 션에서 표시된 위치를 지정합니다. "30 번째 줄의 구문 오류 9 : 여기에 나타날 수있는 토큰은 1 개입니다.)" 여기서 잘못된 점을 볼 수 없습니다. 합금의 구문을 사용하여 (또는 허용) 변경 어떤 점에서 나는 결코 확실히 이해 이유로 abstract sig Target{}
아래의 간단한 테스트를 감안할 때, 어떤 경우에는 Evaluator가 음의 카디널리티에 응답합니다. sig A{}
pred show{}
run show
// 2nd instance
univ {A$0}
#univ -1
// 3rd instance
univ {A$0, A$1}
#univ -2
// 4th instance
u
이 합금 코드를 실행하는이 문제를 해결하는 방법은 무엇입니까? 4.1 우리에게 오류 줄 합금 V 테스트 : 왼쪽은 t이고이 에는 .error 유형 이 법적 관계가 가입 할 수 없습니다 (유형 = {이/대상}) 오른쪽이 /입니다 과목 (유형 = {이/과목}) sig Element{}
sig policy extends Element{}
sig Target
합금의 관계와 관계 사이에 bijection을 쓰고 싶습니다. 예를 들어 다음 코드에서 ref는 QArrow와 이벤트 사이의 bijection으로 정의하고 싶습니다. 그러므로 나는 사실 bij을 쓴다. sig State {event : set State}
sig QArrow {ref: univ ->univ}
fact bij {
all q:QA
대학 프로젝트에서 나는 중국 게임 인 고 (http://en.wikipedia.org/wiki/Go_%28game%29)를 합금에 쓰려고합니다. (4.2 버전을 사용하고 있습니다) 기본 구조를 쓸 수있었습니다. 고 (Go)는 보드 9 x 9 와이드에서 연주되었지만 더 빨리 확인하기 위해 3 x 3의 작은 세트를 사용합니다. 보드는 비어 있거나 검은 색 또는
합금을 배우려고 노력하고 있지만 적절한 학습 자료를 찾는 데 어려움을 겪고 있습니다. 그래서 나는 혼자서 어떤 모델을 시험해보고 작동하는지 확인합니다. 나는 주어진 기능을 가진 의사가있는 진료소를 찾고 돌려주고 싶었지만 제대로 작동하지 않았습니다. 클리닉 및 의사를 변경하지 않고 어떻게해야합니까? abstract sig Clinic {
doctor
에서 모듈에 의한 사실을 다시 사용하려면 어떻게 합금에 다음과 같은 사양을 가지고 : 내 모델에서 sig A {}
sig Q{isA: one A}
fact {
all c1,c2:Q | c1.isA=c2.isA => c1=c2 // injective mapping
all a1:A | some c1:Q | c1.isA=a1 //surje
합금 도서의 4.7.2 절의 다음 코드에서 이 키워드는 무엇을 말합니까? module library/list [t]
sig List {}
sig NonEmptyList extends List {next: List, element: t}
... fun List.first : t {this.element}
fun List.rest : List {thi
다음 모델은 Books 수가 정확히 1 인 경우 정확히 2 개의 주소 관계가있는 인스턴스를 생성하지만 더 많은 Books가 허용되는 경우 0-3 주소 관계를 갖는 인스턴스를 만듭니다. 합금 작동 방식에 대한 오해? sig Name{}
sig Addr{}
sig Book { addr: Name -> lone Addr }
pred show(b:Book)