事件B中的关系建模

时间:2014-03-18 13:58:58

标签: predicate event-b

我有一个问题如下:

小学班级包含许多孩子和各种书籍。写一个模型,跟踪孩子们读过的书。它应该保持儿童和书籍之间的关系。

所以我的背景就是这样

CONTEXT  
    booksContext
SETS
    STUDENTS
    BOOKS

CONSTANTS
    student
    book
AXIOMS
    axm1: partition(STUDENTS, {student})
    axm2: partition(BOOKS,{book})

我的机器如下:

MACHINE
    books
SEES
    booksContext
VARIABLES
    students
    readBooks
INVARIANTS
    students ⊆ STUDENTS
    readBooks ⊆ BOOKS
    readBooks ∈ students → ℕ

readBooks∈学生→ℕ正在犯错误。显然我在模拟这个错误。任何人都可以帮助我吗?我是B事件的新手,我真的不知道该怎么做

1 个答案:

答案 0 :(得分:1)

readBooks变量不能既是BOOKS的子集又是一个总函数,因为BOOKS不是从STUDENTS到ℕ的总函数。

固定模型可以在this question中找到。

看起来像这样:

MACHINE
    books
SEES
    booksContext
VARIABLES
    students
    books
    readBooks
INVARIANTS
    students ⊆ STUDENTS
    books ⊆ BOOKS
    readBooks ∈ students → books

其中readBooks是从学生集到这些学生阅读的书籍集的总功能。