<?xml version="1.0" encoding="ASCII"?>
<!-- 

#####################################################################
#####################################################################
## Copyright 2005 Steven R. Newcomb                                ##
##                                                                 ##
## This software is licensed under the Apache License, Version 2.0 ##
## (the "License"); you may not use this file except in compliance ##
## with the License.  Copies of the License are available at       ##
##        http://www.apache.org/licenses/LICENSE-2.0               ##
##                                                                 ##
## Unless required by applicable law or agreed to in writing,      ##
## software distributed under the License is distributed on an "AS ##
## IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either ##
## express or implied.  See the License for the specific language  ##
## governing permissions and limitations under the License.        ##
##                                                                 ##
## Copies of the source code and the license are available at      ##
##        http://www.versavant.org                                 ##
#####################################################################
#####################################################################

####################################
cvsRevision = "$Revision: 1.9 $" ##
####################################


"BigAssert" assertions
_______________________

(1) The heavy-duty model:

            t
        r1  |   r2
        |   |   |
   x1___c1__a___c2__x2         Suggest: "fully reified assertion"
                               This one is implemented; the
                               implementation is called "BigAssert",
                               which is perhaps a more tasteful name
                               than "BigAss".  See attached diagram.

Assumptions:

* An assertion can only be created by uttering an a_sip property.
  Everything else will be conferred into existence (but, of course,
  that doesn't prevent the other parts of the assertion from *also*
  being created manually).  

* You can't create an assertion if its r-proxies and x-proxies don't
  already exist.  Those r-proxies and x-proxies must already have one
  or more SIPs.  (Because conferral operations can't duplicate SIPs
  that don't exist.)

* An a_sip property consists of a set of tuples, one for each playable
  role.  Each tuple may have a single member, in which case that
  member is an unplayed role.  The tuple may have two members, in
  which case the first member is the role and the second is the role
  player.  The set of playable roles becomes the t_sip of the t-proxy.
  No two tuples can have the same first member.

* The SIPs of r-proxies and x-proxies are outside the scope of this
  TMA.  They cannot be conferred into existence by uttering an a_sip.

* The constraint that no r-proxy can appear in more than one t-proxy
  is a constraint on the value of the r_type property.

properties of a-proxies

    a_sip
  
        Property value type: 

           setOfProxyRefTuples.  Each member of each tuple must be a
           proxy reference.

        Property value constraints:

           There must be at least two tuples.

           At least one of the tuples must have two members.

           (The first member will be regarded as a reference to an
           r-proxy, while the second member, if there is one, will be
           regarded as a reference to an x-proxy.)

           No proxy can be referenced as an r-proxy more than once
           (i.e., by more than one tuple)

           Proxies referenced as r-proxies cannot have any properties
           governed by this TMA other than r_type, r_rolePlayers, and
           x_roles.

        Context constraints:

           Proxies that have a_sip properties cannot have any
           properties governed by this TMA other than a_sip, a_type,
           a_castings, and x_castings.

        Proxies with a_sip properties merge when:

           ...the lists of tuples, considered as sets, match.

        The result of merging two or more a_sip properties will be:

           ...the same as any one of them.

        a_sip property values are significantly different if:

           ...the lists of tuples, considered as sets, don't match

        a_sip properties trigger conferrals as follows:

           - a t-proxy, with its t_sip and t_assertions properties.
             The t_sip property's value is a list of references to the
             set of r-proxies (the ones that are referenced as the
             first member of each tuple in the a_sip property's
             value).  The t_assertions property's value is a list of
             proxy references with one item in it - a reference to
             the a-proxy that has this a_sip property.

           - for each tuple in the a_sip property value, the following
             are conferred into existence:

              . a c-proxy, with its c_sip property.  (See c_sip,
                below.)

              . an r-proxy, with its r_type and r_castings property,
                plus an SIP that is not governed by this TMA but is
                already extant.

           - for each tuple in the a_sip property value that has two
             members (i.e., that has a reference to an x-proxy)

              . an x-proxy, with its x_castings property, plus the SIP
                that may be, but is not necessarily, governed by this
                TMA but is already extant

           - an a_type property on the same proxy in which the a_sip
             property appears

           - an a_castings property on the same proxy in which the
             a_sip appears

    a_castings

        Property value type: 

           A list of proxy references.

        Property value constraints:

           There must be at least two proxy references.

           No two references can be to the same proxy

           Proxies referenced cannot have any properties governed by
           this TMA other than c_sip and x_castings.

           Proxies referenced must have c_sip properties whose
           second tuple-member is the a-proxy.

        Context constraints:

           Proxies that have a_castings properties cannot have any
           properties governed by this TMA other than a_sip, a_type,
           a_castings, and x_castings.

        Proxies merge when:

           (not applicable; this property is not an SIP)

        The result of merging two or more a_castings properties will be:

           ...the same as any one of them

        a_castings property values are significantly different if:

           Their lists of proxy references, considered as sets, don't match.

        a_castings properties trigger conferrals as follows:

           (no conferrals)

    a_type

        Property value type: 

           List of proxy references.

        Property value constraints:

           There must be at least one proxy reference.  (During a
           merging cycle, there may temporarily be more than one.)

           Proxies referenced cannot have any properties governed by
           this TMA other than t_sip, t_assertions, and x_castings.

        Context constraints:

           Proxies that have a_type properties cannot have any
           properties governed by this TMA other than a_sip,
           a_type, and x_castings.

        Proxies merge when:

           (not applicable; this property is not an SIP)

        The result of merging two or more a_type properties will be:

           ...the union of their sets of proxy references

        a_type property values are significantly different if:

           Their lists of proxy references, considered as sets, don't match.

        a_type properties trigger conferrals as follows:

           (no conferrals)


properties of c-proxies

    c_sip

        Property value type: 

           A list, treated as a tuple.  The tuple must have either two
           or three members, and each member must be a proxy
           reference.

        Property value constraints:

           (The first member will be regarded as a reference to an
           r-proxy.  The second member will be regarded as a reference
           to an a-proxy.  The third member, if there is one, will be
           regarded as a reference to an x-proxy.)

           The r-proxy cannot have any properties governed by this TMA
           other than r_type, r_castings, and x_castings.

           The a-proxy cannot have any properties governed by this TMA
           other than a_sip, a_type, a_castings, and x_castings.

        Context constraints:

           Proxies that have c_sip properties cannot have any
           properties governed by this TMA other than c_sip
           and x_castings.

        Proxies merge when:

           The value is an exact match.

        The result of merging two or more c_sip properties will be:

           ...the same as any one of them

        c_sip property values are significantly different if:

           ...the values are not an exact match

        c_sip properties trigger conferrals as follows:

           (no conferrals)

properties of r-proxies

    (sip not governed by this TMA)

    r_type

        Property value type: 

           List of proxy references.

        Property value constraints:

           There must be at least one proxy reference.  (During a
           merging cycle, there may temporarily be more than one.)

           Proxies referenced cannot have any properties governed by
           this TMA other than t_sip, t_assertions, and x_castings.

        Context constraints:

           Proxies that have r_type properties cannot have any
           properties governed by this TMA other than r_type,
           r_castings, and x_castings.

        Proxies merge when:

           (not applicable; this property is not an SIP)

        The result of merging two or more r_type properties will be:

           ...the union of their sets of proxy references

        r_type property values are significantly different if:

           their lists of proxy references, considered as sets, don't match.

        r_type properties trigger conferrals as follows:

           (no conferrals)


    r_castings    

        Property value type: 

           List of proxy references.

        Property value constraints:

           Proxies referenced cannot have any properties governed by
           this TMA other than c_sip and x_castings.

        Context constraints:

           Proxies that have r_castings properties cannot have any
           properties governed by this TMA other than r_type,
           r_castings, and x_castings.

        Proxies merge when:

           (not applicable; this property is not an SIP)

        The result of merging two or more r_castings properties will be:

           ...the union of their sets of proxy references

        r_castings property values are significantly different if:

           Their lists of proxy references, considered as sets, don't match.

        r_castings properties trigger conferrals as follows:

           (no conferrals)


properties of t-proxies

    t_sip

        Property value type: 

           List of proxy references.

        Property value constraints:

           There must be at least two proxy references, and no two
           references can be to the same proxy.

           No referenced proxy can have any properties governed by
           this TMA other than r_type, r_castings, and x_castings.

        Context constraints:

           Proxies that have t_sip properties cannot have any
           properties governed by this TMA other than t_sip, 
           t_assertions, and x_castings.

        Proxies merge when:

           Any two t_sip values are references to the same set of
           r-proxies.

        The result of merging two or more t_sip properties will be:

           ...the same as any one of them

        t_sip property values are significantly different if:

           The lists of referenced r-proxies are not the same.

    t_assertions

        Property value type: 

           List of proxy references.

        Property value constraints:

           No referenced proxy can have any properties governed by
           this TMA other than a_sip, a_type, a_castings, and
           x_castings.

        Context constraints:

           Proxies that have t_assertions properties cannot have any
           properties governed by this TMA other than t_sip,
           t_assertions, and x_castings.

        Proxies merge when:

           (not applicable; this property is not an SIP)

        The result of merging two or more t_assertions properties will be:

           ...the union of their values

        t_assertions property values are significantly different if:

           the sets of a-proxies that they reference are not the same


properties of x-proxies

    (sip not governed by this TMA)

    x_castings    

        Property value type: 

           List of proxy references.

        Property value constraints:

           No referenced proxy can have any properties governed by
           this TMA other than c_sip and x_castings.

        Context constraints:

           (none)

        Proxies merge when:

           (not applicable; this property is not an SIP)

        The result of merging two or more x_castings properties will be:

           ...the union of their values

        x_castings property values are significantly different if:

           the sets of c-proxies that they reference are not the same


-->
<!-- <!DOCTYPE VersavantTMA SYSTEM "http://www.versavant.org/dtds/TMAConfigFile.dtd">-->
<!DOCTYPE VersavantTMA SYSTEM "../versavantTMA.dtd">
<VersavantTMA
VersavantTMADTDVersion="1"

  ><Desc>TMA for fully-reified assertions pretty much along the lines of the model found in version 3.10 of the Topic Maps Reference Model (http://www.isotopicmaps.org/tmrm/TMRM-3.10/TMRM-3.10.html).</Desc

  ><ValueType ValueTypeName="setOfProxyRefTuples"
    ><Desc>Value type for a_sip class.</Desc
    ><ValueIsNotOfType__
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTsetOfProxyRefTuples.py"
      functionName="ValueIsNotOfType_setOfProxyRefTuples_"
    /><InstanceOf__ValueTypeToXMLContentString
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTsetOfProxyRefTuples.py"
      functionName="InstanceOf_setOfProxyRefTuples_ValueTypeToXMLContentString"
    /><XMLContentStringToInstanceOf__ValueType
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTsetOfProxyRefTuples.py"
      functionName="XMLContentStringToInstanceOf_setOfProxyRefTuples_ValueType"
  /></ValueType

  ><ValueType ValueTypeName="proxyIdList"
    ><Desc>General-purpose list-of-subject-proxies value type.</Desc
    ><ValueIsNotOfType__
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"
      functionName="ValueIsNotOfType_proxyIdList_"
    /><InstanceOf__ValueTypeToXMLContentString
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"
      functionName="InstanceOf_proxyIdList_ValueTypeToXMLContentString"
    /><XMLContentStringToInstanceOf__ValueType
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"
      functionName="XMLContentStringToInstanceOf_proxyIdList_ValueType"
  /></ValueType

  ><ValueType ValueTypeName="proxyIdSet"
    ><Desc>General-purpose set-of-subject-proxies value type.  (Same valuetype implementation as proxyIdList.)</Desc
    ><ValueIsNotOfType__
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"
      functionName="ValueIsNotOfType_proxyIdList_"
    /><InstanceOf__ValueTypeToXMLContentString
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"
      functionName="InstanceOf_proxyIdList_ValueTypeToXMLContentString"
    /><XMLContentStringToInstanceOf__ValueType
      functionModuleFilePath="${VSVEXECDIR}/Lib/VTproxyIdList.py"
      functionName="XMLContentStringToInstanceOf_proxyIdList_ValueType"
  /></ValueType

  ><PropertyClass PropertyClassName="a_sip" ValueType="setOfProxyRefTuples"
    ><Desc>SIP of this a-proxy; subject is a relationship.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCsetOfProxyRefTuples.py"
      functionName="Add_setOfProxyRefTuples_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCsetOfProxyRefTuples.py"
      functionName="Remove_setOfProxyRefTuples_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_a_sip_Property"
      functionExtraArgsString="r_proxy_allowed_properties = [ 'r_type', 'r_castings', 'x_castings']"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCsetOfProxyRefTuples.py"
      functionName="Merge_setOfProxyRefTuples_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCsetOfProxyRefTuples.py"
      functionName="ValuesOf_setOfProxyRefTuples_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'a_sip'"
    /><MergeProxiesBecause__PropertyInstancesSpecifySameSubject
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCsetOfProxyRefTuples.py"
      functionName="MergeProxiesBecause_setOfProxyRefTuples_PropertyInstancesSpecifySameSubject"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCsetOfProxyRefTuples.py"
      functionName="ProxiesOfSubjectIdentifiedBy_setOfProxyRefTuples_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCsetOfProxyRefTuples.py"
      functionName="UpdateProxyReferencesIn_setOfProxyRefTuples_Value"
  /></PropertyClass

  ><ConferralRule ConferralRuleName="inferFrom_a_sip_"
      functionModuleFilePath="conferralRules.py"
      functionName="inferFrom_a_sip_"
      functionExtraArgsString="assertionModel = 'BigAssert'"
    ><Desc>From each a_sip property, confers a_type, a_castings, c_sip, r_type, r_castings, t_sip, t_assertions, and x_castings properties.</Desc
  ></ConferralRule

  ><ConferralRule ConferralRuleName="bridge_TRA_assert_a_sip_to_BigAssert_a_sip"
      functionModuleFilePath="${VSVEXECDIR}/Lib/BIGASSERT/conferralRules.py"
      functionName="bridgeAcross_a_sip_Models"
      functionExtraArgsString="bridgeFromTMAName = 'TRA_assert', 
                               bridgeFromTMAModel = 'TRA_assert', 
                               bridgeToTMAModel = 'BigAssert'"
    ><Desc>For each a_sip property in the TMA named in the bridgeFromTMAName keyword argument, confers an a_sip property in this TMA.</Desc
  ></ConferralRule

  ><ConferralRule ConferralRuleName="bridge_A_assert_a_sip_to_BigAssert_a_sip"
      functionModuleFilePath="${VSVEXECDIR}/Lib/BIGASSERT/conferralRules.py"
      functionName="bridgeAcross_a_sip_Models"
      functionExtraArgsString="bridgeFromTMAName = 'A_assert', 
                               bridgeFromTMAModel = 'A_assert', 
                               bridgeToTMAModel = 'BigAssert', 
                               bridgeToR_ProxyPropertyName = 'role name', 
                               bridgeToR_ProxyTMAName = 'Roles'"
    ><Desc>For each a_sip property in the TMA named in the bridgeFromTMAName keyword argument, confers an a_sip property in this TMA.</Desc
  ></ConferralRule

  ><ConferralRule ConferralRuleName="bridgeFromU_assert"
      functionModuleFilePath="${VSVEXECDIR}/Lib/BIGASSERT/conferralRules.py"
      functionName="bridgeFromU_assert"
      functionExtraArgsString="bridgeFromTMAName = 'U_assert', 
                               bridgeToTMAModel = 'BigAssert', 
                               roleNamePropertyClassName = 'role name', 
                               rolesTMAName = 'Roles'"
    ><Desc>For each U_assert,,x_LrnRrnRrp property in the TMA named in the bridgeFromTMAName keyword argument, confers an a_sip property in this TMA.</Desc
  ></ConferralRule

  ><ConferralRule ConferralRuleName="bridgeAcross_t_sip_Models"
      functionModuleFilePath="${VSVEXECDIR}/Lib/BIGASSERT/conferralRules.py"
      functionName="bridgeAcross_t_sip_Models"
      functionExtraArgsString="bridgeFromTMAName = 'TRA_assert'"
    ><Desc>For each t_sip property in the TMA named in the bridgeFromTMAName keyword argument, confers a t_sip property in this TMA.</Desc
  ></ConferralRule

  ><PropertyClass PropertyClassName="t_sip" ValueType="proxyIdSet"
    ><Desc>SIP of this t-proxy; subject is a relationship type.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Add_proxyIdSet_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Remove_proxyIdSet_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_t_sip_Property"
      functionExtraArgsString="r_proxy_allowed_properties = [ 'r_type', 'r_castings', 'x_castings']"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Merge_proxyIdSet_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'t_sip'"
    /><MergeProxiesBecause__PropertyInstancesSpecifySameSubject
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="MergeProxiesBecause_proxyIdSet_PropertyInstancesSpecifySameSubject"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"
  /></PropertyClass

  ><PropertyClass PropertyClassName="c_sip" ValueType="proxyIdList"
    ><Desc>SIP of this c-proxy; subject is a casting in a relationship.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdList.py"
      functionName="Add_proxyIdList_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdList.py"
      functionName="Remove_proxyIdList_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_c_sip_Property"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdList.py"
      functionName="Merge_proxyIdList_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdList.py"
      functionName="ValuesOf_proxyIdList_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'c_sip'"
    /><MergeProxiesBecause__PropertyInstancesSpecifySameSubject
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdList.py"
      functionName="MergeProxiesBecause_proxyIdList_PropertyInstancesSpecifySameSubject"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdList.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdList_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdList.py"
      functionName="UpdateProxyReferencesIn_proxyIdList_Value"
  /></PropertyClass

  ><PropertyClass PropertyClassName="r_type" ValueType="proxyIdSet"
    ><Desc>Refers to the t-proxy whose subject is the relationship type in which the subject of this r-proxy is one of the roles.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Add_proxyIdSet_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Remove_proxyIdSet_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_r_type_Property"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Merge_proxyIdSet_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'r_type'"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"
  /></PropertyClass

  ><PropertyClass PropertyClassName="r_castings" ValueType="proxyIdSet"
    ><Desc>Refers to the c-proxies whose subjects are the castings in which the subject of this r-proxy is the role.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Add_proxyIdSet_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Remove_proxyIdSet_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_r_castings_Property"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Merge_proxyIdSet_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'r_castings'"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"
  /></PropertyClass

  ><PropertyClass PropertyClassName="x_castings" ValueType="proxyIdSet"
    ><Desc>Refers to the c-proxies (castings) in which the subject of this proxy is the role player.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Add_proxyIdSet_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Remove_proxyIdSet_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_x_castings_Property"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Merge_proxyIdSet_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"
  /></PropertyClass

  ><PropertyClass PropertyClassName="t_assertions" ValueType="proxyIdSet"
    ><Desc>Refers to the a-proxies whose subjects are the relationships that are instances of the relationship type that is the subject of this t-proxy.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Add_proxyIdSet_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Remove_proxyIdSet_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_t_assertions_Property"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Merge_proxyIdSet_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'t_assertions'"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"
  /></PropertyClass

  ><PropertyClass PropertyClassName="a_type" ValueType="proxyIdSet"
    ><Desc>Refers to the t-proxy whose subject is the relationship type of which the subject of this a-proxy is an instance.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Add_proxyIdSet_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Remove_proxyIdSet_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_a_type_Property"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Merge_proxyIdSet_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'a_type'"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"
  /></PropertyClass

  ><PropertyClass PropertyClassName="a_castings" ValueType="proxyIdSet"
    ><Desc>Refers to the c-proxies whose subjects are the castings in which the subject of this a-proxy is the relationship.</Desc
    ><Add__PropToOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Add_proxyIdSet_PropToOverheadDict"
    /><Remove__PropFromOverheadDict
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Remove_proxyIdSet_PropFromOverheadDict"
    /><ValueIsInvalidFor__Property
      functionModuleFilePath="propertyClasses.py"
      functionName="ValueIsInvalidFor_a_castings_Property"
    /><Merge__PropertyValues
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="Merge_proxyIdSet_PropertyValues"
    /><ValuesOf__PropertyInstancesAreSignificantlyDifferent
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ValuesOf_proxyIdSet_PropertyInstancesAreSignificantlyDifferent"
    /><ContextOf__PropertyIsInvalid
      functionModuleFilePath="propertyClasses.py"
      functionName="ContextOf_BIGASSERT_PropertyIsInvalid"
      functionExtraArgsString="'a_castings'"
    /><ProxiesWith__ValueNotSignificantlyDifferentFrom
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="ProxiesOfSubjectIdentifiedBy_proxyIdSet_Value"
    /><UpdateProxyReferencesIn__Value
      functionModuleFilePath="${VSVEXECDIR}/Lib/PCproxyIdSet.py"
      functionName="UpdateProxyReferencesIn_proxyIdSet_Value"
  /></PropertyClass

></VersavantTMA>
